美图欣赏 | 设为首页 | 加入收藏 | 网站地图

当前位置:电脑中国 > 编程 > delphi >

Delphi下获取IE的UserAgent的方法

2018-06-27 11:10|来源:未知 |作者:dnzg |点击:
方法一:  
使用SHDocVw,MSHtml单元提供的一些方法利用浏览器的特性来获取。  【新锦江娱乐官网:www.justoa69.com】
usesSHDocVw,MSHtml;  
functionGetUserAgent:string;  
var  
Doc:IHTMLDocument2;  
win:IHTMLWindow2;  
wb:TWebBrowser;  
begin  
Result:='';  
try  
wb:=TWebBrowser.Create(nil);  
try  
wb.Navigate('about:blank');  
whilenotwb.ReadyState=READYSTATE_COMPLETEdo  
Application.ProcessMessages;  
Doc:=IHTMLDocument2(wb.Document);  
ifnotAssigned(Doc)thenExit;  
win:=Doc.parentWindow;  
ifAssigned(win)then  
Result:=win.clientInformation.userAgent;  
finally  
wb.Free;  
end;  
except  
end;  
end;  
注:此方法为获取系统默认的UserAgent的方法,而不一定是系统默认IE浏览器的UserAgent,如需获取IE浏览器的UserAgent,可将Webbrowser对象改为IWebBrowser2或IShellWindows等接口即可。  
方法二:  
其实很简单就是从注册表里面读取。不过该方法读取出来的并不完整。  
usesRegistry;  
functionGetDefaultUserAgent:string;  
var  
reg:TRegistry;  
begin  
Reg:=TRegistry.Create;  
try  
Reg.RootKey:=HKEY_CURRENT_USER;  
ifReg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\InternetSettings\',FALSE)  
thenResult:=Reg.ReadString('UserAgent');  
finally  
Reg.CloseKey;  
Reg.Free;  
end;  
end;  
注:其实也可以从HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings下面读取UserAgent的值,从HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\InternetSettings\5.0\UserAgent\PostPlatform下读取.NETCLR2.0.50727类似如此的项名称,然后拼接在一起就可以构成一个IE浏览器的UserAgent。  
方法三:  
利用UrlMon里面提供的方法来获取浏览器的UserAgent,不过该方法有时候会失误,比如我的浏览器是IE8.0,而结果却是IE7.0。  
usesUrlMon;  
functionGetIEUserAgent:String;  
var  
IeUserAgent:array[0..MAX_PATH]ofChar;  
dwSizeOut:DWord;  
begin  
Result:='';  
try  
dwSizeOut:=0;  
ZeroMemory(@IeUserAgent,MAX_PATH*SizeOf(Char));  
UrlMkGetSessionOption(URLMON_OPTION_USERAGENT,@IeUserAgent,MAX_PATH,dwSizeOut,0);  
Result:=StrPas(IeUserAgent);  
except  
onE:Exceptiondo  
begin  
ShowMessage(E.Message);  
end;  
end;  
end;  
 
(责任编辑:dnzg)
新锦江娱乐 关闭广告
新锦江娱乐 关闭广告