检测在C#中的操作系统上安装了哪个版本的IE?

检测在C#中的操作系统上安装了哪个版本的IE?,c#,.net,internet-explorer,windows-services,httpwebrequest,C#,.net,Internet Explorer,Windows Services,Httpwebrequest,我目前正在管理一个windows服务,该服务通过编程生成HttpWebRequest和HttpWebResponse对象,用于检索请求的响应消息 HttpWebRequest的UserAgent属性已硬编码为使用IE 6作为浏览器代理。这是一种通过编程检测托管服务的服务器上安装了哪个版本的IE的方法吗 它当前托管在Windows Server 2003计算机上,可能安装在Windows Server 2008计算机上 看起来可以设置用户代理: 现在我更喜欢WebClient类,它是HttpWeb

我目前正在管理一个windows服务,该服务通过编程生成HttpWebRequest和HttpWebResponse对象,用于检索请求的响应消息

HttpWebRequest的
UserAgent
属性已硬编码为使用IE 6作为浏览器代理。这是一种通过编程检测托管服务的服务器上安装了哪个版本的IE的方法吗


它当前托管在Windows Server 2003计算机上,可能安装在Windows Server 2008计算机上

看起来可以设置用户代理:


现在我更喜欢WebClient类,它是HttpWebRequest的包装器,允许您用更少的代码完成一些事情:

您还可以从WebBrowser控件本身提取它,如果您已经创建了一个:

WebBrowser  browser = new WebBrowser();
Version ver = browser.Version;
警告:这必须从STA线程调用,否则会引发异常。
这在MSTest清理代码中可能会遇到,它是MTA,而不是STA。

可能重复@RowlandShaw,实际上,这个问题是WinForms特有的。它更像是一个复制品。然而,这个问题比这两个问题都要老,所以从技术上讲,它们是重复的:)仅仅为此添加对WinForms的引用似乎有些过火。请参阅链接答案,以获得更好的选择。