相关疑难解决方法(0)

更改WebBrowser控件的用户代理

我试图在Winforms应用程序中更改WebBrowser控件的UserAgent.

我已成功使用以下代码实现此目的:

[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(
    int dwOption, string pBuffer, int dwBufferLength, int dwReserved);

const int URLMON_OPTION_USERAGENT = 0x10000001;

public void ChangeUserAgent()
{
    List<string> userAgent = new List<string>();
    string ua = "Googlebot/2.1 (+http://www.google.com/bot.html)";

    UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, ua, ua.Length, 0);
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是这只能工作一次.当我尝试第二次运行ChangeUserAgent()方法时,它不起作用.它保持设置为第一个更改的值.这很烦人,我已经尝试了一切,但它不会改变不止一次.

有谁知道一种不同的,更灵活的方法?

谢谢

c# user-agent webbrowser-control winforms

44
推荐指数
3
解决办法
8万
查看次数

IWebBrowser2对象使用IE7版本,而不是机器上安装的IE版本

我正在开发一台带有IE8浏览器的Win7机器(同样的事情也出现在IE9上).

我创建了一个嵌入在本机窗口中的IWebBrowser2对象的应用程序.
在该浏览器对象中,我执行javascipt代码:

  var txt = "Browser Name: " + navigator.appName + "\n";
  txt += "Browser Version: " + navigator.appVersion + "\n";
  alert(txt);
Run Code Online (Sandbox Code Playgroud)

我收到以下提醒: 在此输入图像描述

这证实了我之前的担忧 - 即使我的机器上安装了IE8\IE9 - IWebBrowser2对象的行为就好像它是IE7(包括所有讨厌的HTML\CSS行为).

有人知道为什么吗?或更好 - 如果有可能将浏览器对象嵌入IE8\IE9(用于分发 - 所以它应该是合法的)

谢谢,

windows internet-explorer iwebbrowser2

6
推荐指数
1
解决办法
7483
查看次数

WPF .net4 webBrowser和Internet Explorer 8

我有一个带有webBrowser组件的WPF .net4应用程序,该组件导航到使用CSS文件的本地HTML页面.

当我使用IE8导航到页面时,CSS样式是正确的,但是当我导航到webBrowser组件中的页面时,CSS样式是错误的.

我认为webBrowser使用与IE8相同的activex是错误的吗?或者我必须在webBrowser组件中设置一些属性?

在此先感谢您的帮助.

.net c#

4
推荐指数
1
解决办法
2171
查看次数

.NET处理以打开没有标签或地址栏的网页

.NET中是否有一种方法可以使Process在没有地址亭和标签的情况下打开默认的Web浏览器,而无需使用信息亭模式?我不能使用WebBrowser对象,因为它使用IE7,并且需要打开的页面使用JavaScript。我无法使用信息亭模式,因为客户端需要窗口出现在屏幕的特定区域。我还需要保持对浏览器的访问权限,因为我必须知道页面何时关闭。

.net c# browser

3
推荐指数
1
解决办法
3257
查看次数