auto 发表于 2009-1-17 19:44:11

VISTA系统如何用WMI获取IE的版本呢?

vista_home用下面WMI代码不能获取IE的版本号,XP 是可以获取得到的
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer &"\root\cimv2\Applications\MicrosoftIE")
$colIESettings = $objWMIService.ExecQuery("Select * fromMicrosoftIE_FileVersion")
For $strIESetting in $colIESettings
        MsgBox(1,"IE",$strIESetting.Version )
        ExitLoop
Next
虽然也可以用注册表获取,但还是想通过WMI 来获取。

[ 本帖最后由 auto 于 2009-1-18 09:21 编辑 ]

sanhen 发表于 2009-1-17 19:45:24

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet   Explorer

auto 发表于 2009-1-17 20:03:46

注册表的方法知道,
用WMI在VISta 下获取DNS(第二个)也会出错
貌似比较多的WMI在VISTA下都会出错

[ 本帖最后由 auto 于 2009-1-17 20:05 编辑 ]

sanhen 发表于 2009-1-17 20:29:22

请查询VISTA下的WMI用法。可能部分参数已经更新,所以不适用了的。
没装有VISTA系统,无法判断。

auto 发表于 2009-1-17 20:38:26

请查询VISTA下的WMI用法。可能部分参数已经更新。。。
请问在哪查询?
WMI的用法是参考WMI生成器和脚本专家的

sanhen 发表于 2009-1-18 00:11:23


$str = DllStructCreate("dword;dword;dword;dword;dword")
DllStructSetData($str, 1, DllStructGetSize($str))
DllCall("Shlwapi.dll","long","DllGetVersion","ptr",DllStructGetPtr($str))
MsgBox(64,"IE版本是:",DllStructGetData($str,2)&"." & _
                                           DllStructGetData($str,3)&"." & _
                                           DllStructGetData($str,4))

auto 发表于 2009-1-18 09:08:33

原帖由 sanhen 于 2009-1-18 00:11 发表 http://www.autoitx.com/images/common/back.gif

$str = DllStructCreate("dword;dword;dword;dword;dword")
DllStructSetData($str, 1, DllStructGetSize($str))
DllCall("Shlwapi.dll","long","DllGetVersion","ptr",DllStructGetPtr($str))
MsgBox(64, ...
嗯..还可以通过API获取啊,虽然不能获取"修正号"后面号码,
但是主版本号和次版本号和修正号都有了,问题基本解决

[ 本帖最后由 auto 于 2009-1-18 09:11 编辑 ]

文傲 发表于 2009-10-21 00:55:39

本帖最后由 文傲 于 2009-10-21 00:57 编辑

方法1,从exe文件
$version = FileGetVersion(@ProgramFilesDir & "\Internet Explorer\iexplore.exe")
MsgBox(0, "IE Version", "Your IE version is: " & $version)

方法2,从注册表
$ie_ver = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer", "Version")

原文
http://www.autoitscript.com/forum/index.php?showtopic=4036

ghl781258 发表于 2011-1-27 19:03:17

本帖最后由 ghl781258 于 2011-8-23 20:44 编辑


;;;;获取IE版本号:4种方法
方法1和方法4,在winxp+IE8.0环境下不能获得正确浏览器版本号.

_fangfa4()

Func _fangfa1()
$str = DllStructCreate("dword;dword;dword;dword;dword")
DllStructSetData($str, 1, DllStructGetSize($str))
DllCall("Shlwapi.dll","long","DllGetVersion","ptr",DllStructGetPtr($str))
MsgBox(64,"IE版本是:",DllStructGetData($str,2)&"." & _
                                           DllStructGetData($str,3)&"." & _
                                           DllStructGetData($str,4))
EndFunc


Func _fangfa2()
        $version = FileGetVersion(@ProgramFilesDir & "\Internet Explorer\iexplore.exe")
        MsgBox(0, "IE Version", "Your IE version is: " & $version)
EndFunc

Func _fangfa3()
        $ie_ver = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer", "Version")
        MsgBox(0, 'IE Version', $ie_ver)
EndFunc

Func _fangfa4()
        $strComputer = "."
        $objWMIService = ObjGet("winmgmts:\\" & $strComputer &"\root\cimv2\Applications\MicrosoftIE")
        $colIESettings = $objWMIService.ExecQuery("Select * fromMicrosoftIE_FileVersion")
        For $strIESetting in $colIESettings
                        MsgBox(1,"IE",$strIESetting.Version )
                        ExitLoop
        Next
EndFunc

页: [1]
查看完整版本: VISTA系统如何用WMI获取IE的版本呢?