4

.net の Webbrowser コントロールを使用してカスタム ブラウザ ソリューションを開発しています。IE 互換ビューを無効にするために、レジストリ エントリ Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION を設定します。

[スクリーンショット regedit] http://zbirk.mirk.at/browserreg.png「スクリーンショット」

値を使用しようとしました: dword=8000,dword=8888,dword=9000, しかし、webbrowser コントロールはこれらの reg エントリを無視するようです.

誰かがこの問題を抱えていて、私を助けてくれるかもしれません。

4

5 に答える 5

3

WebBrowser コントロールは、これらのキーを確実に尊重します。

taskman は名前列に application.exe を表示する場合がありますが、exe をデバッグしている場合、名前は application.vshost.exe であることに注意してください。

したがって、私のアプリケーションでは、アプリが実行されるたびにキーを作成しようとします。作成に失敗した場合 (既に存在するため)、実行を続行します。キーが作成された場合は、アプリケーションを再起動する必要があることをユーザーに通知します。

于 2012-03-27T20:31:13.860 に答える
2

vshost内で実行していないことを確認してください

アプリ名は異なります。つまり、appname.vshost.exe です。

于 2012-10-27T06:16:02.450 に答える
1

お返事ありがとうございます。

彼女は私のコードの平和です:

public void setIEcomp()
    {
        String appname = Process.GetCurrentProcess().ProcessName+".exe";
        RegistryKey RK8 = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION",RegistryKeyPermissionCheck.ReadWriteSubTree);            
        int value9 = 9999;
        int value8 = 8888;
        Version ver = webBrowser1.Version;
        int value = value9;
        try
        {
            string[] parts = ver.ToString().Split('.');
            int vn = 0;
            int.TryParse(parts[0], out vn);
            if (vn != 0)
            {
                if (vn == 9)
                    value = value9;
                else
                    value = value8;
            }
        }
        catch
        {
            value = value9;
        }
        //Setting the key in LocalMachine
        if (RK8 != null)
        {
            try
            {
                RK8.SetValue(appname, value, RegistryValueKind.DWord);
                RK8.Close();
            }
            catch(Exception ex)
            {
                //MessageBox.Show(ex.Message);
            }
        }
    }
于 2012-03-28T01:49:31.627 に答える
0

古い投稿と解決策は正確ではありません。

procmon を実行して FEATURE_BROWSER_EMULATION を監視すると、実際にチェックされた次のレジストリ変数が表示されます。これはWINWORD.exe用でしたが、それ以外はお好きなものをお選びください...

HKU\S-1-5-21-[my-sid-paws-off]\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\WINWORD.EXE

HKU\S-1-5-21-[my-sid-paws-off]\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION*

HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION(デフォルト)

HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\WINWORD.EXE

HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\WINWORD.EXE

HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION*

HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION*

于 2022-01-31T14:13:46.220 に答える