【发布时间】:2023-03-15 10:01:01
【问题描述】:
当我问this question 时,我接受了答案,因为它说得通,并且指出的文档是正确的。
使用 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?
谢谢。
【问题讨论】:
标签: windows delphi internet-explorer delphi-7