TWebBrowser和IE版本

Ric*_*ras 4 windows delphi internet-explorer delphi-7

当我问这个问题时,我接受了回答,因为它是有道理的,文件指出是正确的.

使用IE6测试一台机器与IE7使用相同的编译可执行文件使用TWebBrowser进行测试,行为确实如回答中所指出的那样.

现在我再次回答问题,在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)
Run Code Online (Sandbox Code Playgroud)

当我使用该可执行文件访问时:

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)
Run Code Online (Sandbox Code Playgroud)

此外,在我的朋友Process Monitor的帮助下,我意识到实例化TWebBrowser的classid是{8856F961-340A-11D0-A96B-00C04FD705A2},它在Windows注册表中的名称为"Microsoft Web Browser"并指向ieframe. DLL.

现在事情变得有点奇怪了.如果我去system32/ieframe.dll并检查版本... 8.0.

我真的很困惑.问题是:当我使用TWebBrowser时,会使用ie版本吗?

谢谢.

Mic*_*sen 7

它使用IE8,但在IE7兼容模式下.IE团队在 2009年3月对此进行博客,他们还描述了如何获得IE8渲染而不是IE7默认渲染.

我还没有看到IE9在这里的表现如何,所以我不能说你是否需要一个不同的值来使用IE9渲染,或者是否有一些其他值只是意味着"最新"并获得IE8渲染.