如何在我的网络浏览器中加载kongregate聊天?

时间:2013-11-04 21:37:28

标签: c# winforms browser

我有一个简单的程序,我正在尝试将kongregate聊天加载到WebBrowser,但它无效...

当我第一次启动时,它导航到一个游戏,然后它给了我4 Script Error,聊天就在那里说:“加入房间......”。我不认为这是浏览器设置的问题,因为它适用于Internet Explorer。我的WebBrowser有什么东西搞砸了吗?我让它坐在那里几分钟,它仍然无法正常工作。我已将suppressScriptErrors设置为true和false,但仍然无法修复它。

仅供参考:我对我的程序没有做任何不好的事情,比如作弊,或者发送垃圾邮件,或类似的东西,我只是希望网页出现,有时我希望能够复制内容,所以我把它右边有几个TextBoxes,所以我可以将它粘贴到聊天中,如果我不发布一些内容......

1 个答案:

答案 0 :(得分:-1)

This文章解决了您的问题。默认情况下,Visual Studio中的WebBrowser控件似乎以IE7模式启动。这就是为什么你用控件获得javescript错误但不在你的浏览器中。我强烈建议你阅读顶部链接的文章。幸运的是,有一个修复。以下代码取自另一个stackoverflow对一个间接解决您的问题的问题的答案。 Here就是那个链接,这是代码。

    string installkey = @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
    string entryLabel = Path.GetFileName(Application.ExecutablePath);
    System.OperatingSystem osInfo = System.Environment.OSVersion;

    string version = osInfo.Version.Major.ToString() + '.' + osInfo.Version.Minor.ToString();
    uint editFlag = (uint)((version == "6.2") ? 0x2710 : 0x2328); // 6.2 = Windows 8 and therefore IE10

    RegistryKey existingSubKey = Registry.LocalMachine.OpenSubKey(installkey, false); // readonly key

    if (existingSubKey == null) {
        existingSubKey = Registry.LocalMachine.CreateSubKey(installkey, RegistryKeyPermissionCheck.Default); // readonly key
    }

    if (existingSubKey.GetValue(entryLabel) == null) {
        existingSubKey = Registry.LocalMachine.OpenSubKey(installkey, true); // writable key
        existingSubKey.SetValue(entryLabel, unchecked((int)editFlag), RegistryValueKind.DWord);
    }

另外,我上面提到的文章说你应该为你的应用程序的VS主机进程创建一个条目,否则它将无法在调试模式下工作。祝你好运,我希望这能解决你的问题!