[英]TWebBrowser and IE version
當我問這個問題時,我接受了回答 ,因為它是合理的,並且所指向的文檔是正確的。
使用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的最全版本?
謝謝。
也許TWebBrowser將創建時的Useragent保存在ControlData屬性中? 嘗試刪除該控件並將其重新添加到安裝了IE8.0的計算機上的表單中。
無論如何,這些用戶代理字符串看起來很奇怪。 無論打印什么,它都可能是相同的IE8.0引擎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.