在寻找更改webBrowser控件的用户代理字符串的方法时,我找到了这个漂亮的方法:
[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 static void ChangeUserAgent(string Agent)
{
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0);
}
基本上,我需要一种方法来更改用户代理,直到我想再次更改它。
通常:
webBrowser1.Navigate ("http://www.whatsmyuseragent.com", "_self" , null, "User-Agent: Luke's Web Browser");
仅适用于一个请求。
但是,我一直在读到第一种方法每个会话只能运行一次。就我而言,它的工作次数和我想要的一样多。所以我的猜测是,这与计算机上的Internet Explorer实例有关吗?
所以我的问题是:
谢谢!
答案 0 :(得分:1)
我们使用“UrlMkSetSessionOption”功能相当多。我们有一个“自定义Web浏览器shell”,它实际上只是嵌入到全屏WinForms程序中的IE用户控件。我们更改用户代理以向我们的Web服务器标识这是我们的“自定义”浏览器shell。但要回答您的具体问题: