当我问这个问题时,我接受了答案,因为它很有道理,所指出的文档也是正确的。
使用TWebBrowser编译相同可执行文件,在使用IE6的机器上与使用IE7的机器进行测试,行为确实如答案中所指出的那样。
现在我再次对答案提出疑问,在使用IE8的机器上,同一可执行文件被服务器识别为IE7。我编写了一个简单的rails应用程序来打印用户代理,很明显。在同一台机器上,如果我在IE中访问此rails应用程序,则会打印出以下内容:
当我使用该可执行文件访问时:
此外,借助我的朋友Process Monitor的一点帮助,我意识到用于实例化TWebBrowser的classid是{8856F961-340A-11D0-A96B-00C04FD705A2},在Windows注册表中具有名称“Microsoft Web Browser”并指向ieframe.dll。
使用TWebBrowser编译相同可执行文件,在使用IE6的机器上与使用IE7的机器进行测试,行为确实如答案中所指出的那样。
现在我再次对答案提出疑问,在使用IE8的机器上,同一可执行文件被服务器识别为IE7。我编写了一个简单的rails应用程序来打印用户代理,很明显。在同一台机器上,如果我在IE中访问此rails应用程序,则会打印出以下内容:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)
当我使用该可执行文件访问时:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)
此外,借助我的朋友Process Monitor的一点帮助,我意识到用于实例化TWebBrowser的classid是{8856F961-340A-11D0-A96B-00C04FD705A2},在Windows注册表中具有名称“Microsoft Web Browser”并指向ieframe.dll。
现在事情变得更加奇怪了。如果我去system32/ieframe.dll并检查版本……8.0。
我真的很困惑。问题是:当我使用TWebBrowser时,究竟会使用哪个版本的ie?
谢谢。