有没有更优雅的方式来获得的Internet Explorer版本的AutoIt

问题描述 投票:0回答:1

摘要:

我在寻找一个更优雅的方式来获得一个Windows计算机上的Internet Explorer(IE)版本(尤其是AutoIt的,因为编译后的* .EXE的)。我目前的解决方案(如下所示)做的工作,但也许有纯的AutoIt功能(S)(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 )

目前的结果:

当然,我会筛选我的搜索标准阵列(没问题)。

enter image description here

预期结果:

是basicly同上(当前结果),但可能以更快的方式,也有自己的AutoIt /本地函数(S)?因为它的许多其他信息只是一个步骤,将收集和我尽量减少代码,旨在提高未来编辑位点的可读性。

请注意,我可以检查 _getFileProperties( @SystemDir, 'ieframe.dll' )or为 _getFileProperties( $sPathIe, 'iexplore.exe' )。 无论做提供的版本信息。

是否有其他的方式,更优雅和自己的AutoIt /本地函数来实现我的目标?

internet-explorer autoit comobject
1个回答
0
投票

你可以尝试检查注册表中的细节,以及验证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)
Endif
© www.soinside.com 2019 - 2024. All rights reserved.