摘要:
我正在寻找一种更优雅的方法,在windows计算机上获得Internet (IE)版本(特别是使用AutoIt,因为编译了*.exe)。我目前的解决方案(如下所示)做了这个工作,但也许有一个更好的方法使用纯AutoIt函数(UDF)?
背景和目标:
我必须检查一个具体的IE版本,并在一般情况下,版本低于11 (11.0.9600)。
一共有60台设备(服务器、笔记本电脑等)。我得检查一下。编译后的*.exe将找到该版本,并将该信息的条目(除了主机名等其他信息)设置为一个小的HTML。远程处理和执行并不是一个问题。
代码:
#include-once
#include <Array.au3>
Func _getFileProperties( $sDirectory, $sFileName, $bRemoveEmptyLines = True )
Local $oShellApp = ObjCreate( 'Shell.Application' )
Local $oFolder = $oShellApp.NameSpace( $sDirectory )
Local $oFolderItem = $oFolder.Parsename( $sFileName )
Local $aPropertyList[1][2] = [[1]]
For $i = 0 To 400 Step 1
If $oFolder.GetDetailsOf( $oFolder.Items, $i ) Then
ReDim $aPropertyList[$aPropertyList[0][0] + 1][2]
$aPropertyList[$aPropertyList[0][0]][0] = $oFolder.GetDetailsOf( $oFolder.Items, $i )
$aPropertyList[$aPropertyList[0][0]][1] = $oFolder.GetDetailsOf( $oFolderItem, $i )
$aPropertyList[0][0] += 1
EndIf
Next
_ArraySort( $aPropertyList, 0, 1, 0 )
If $bRemoveEmptyLines Then
For $i = $aPropertyList[0][0] - 1 To 1 Step - 1
If $aPropertyList[$i][1] == '' Then _ArrayDelete( $aPropertyList, $i )
Next
EndIf
$aPropertyList[0][0] = UBound( $aPropertyList, 1 ) - 1
Return $aPropertyList
EndFunc
Global $aPropertyList = _getFileProperties( @SystemDir, 'ieframe.dll' )
_ArrayDisplay( $aPropertyList )当前结果:
当然,我会为我的搜索标准过滤数组(没问题)。

预期结果:
与上面的结果基本相同(当前结果),但可能是以更快的方式,也使用AutoIt自己的/本机函数吗?因为这只是将收集到的许多其他信息的一个步骤,我试图减少代码,并提高将来编辑的可读性。
请注意,我可以检查一下
_getFileProperties( @SystemDir, 'ieframe.dll' )或为
_getFileProperties( $sPathIe, 'iexplore.exe' )。
两者都提供了版本信息。
还有其他方式,更优雅和AutoIt自己的/本机功能来实现我的目标吗?
发布于 2019-02-11 16:50:11
您也可以尝试检查注册表细节,以验证IE version.Hope,这可能会帮助您找到其他方法。
;Internet Explorer version is
Global $svcVersion = (RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer", "svcVersion"))
If $svcVersion <> "" Then
MsgBox(1, "internet Explorer Version" , "Internet Explorer version is: " & $svcVersion)
Endif或
;Internet Explorer updated version is
Global $svcUpdateVersion = (RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer", "svcUpdateVersion"))
If $svcUpdateVersion <> "" Then
MsgBox(1, "internet Explorer Version" , "Internet Explorer updated version is: " & $svcUpdateVersion)
Endifhttps://stackoverflow.com/questions/54616607
复制相似问题