首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有更优雅的方法来获得AutoIt的Internet Expolor版本

是否有更优雅的方法来获得AutoIt的Internet Expolor版本
EN

Stack Overflow用户
提问于 2019-02-10 12:54:38
回答 1查看 133关注 0票数 0

摘要:

我正在寻找一种更优雅的方法,在windows计算机上获得Internet (IE)版本(特别是使用AutoIt,因为编译了*.exe)。我目前的解决方案(如下所示)做了这个工作,但也许有一个更好的方法使用纯AutoIt函数(UDF)?

背景和目标:

我必须检查一个具体的IE版本,并在一般情况下,版本低于11 (11.0.9600)。

一共有60台设备(服务器、笔记本电脑等)。我得检查一下。编译后的*.exe将找到该版本,并将该信息的条目(除了主机名等其他信息)设置为一个小的HTML。远程处理和执行并不是一个问题。

代码:

代码语言:javascript
复制
#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自己的/本机功能来实现我的目标吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 16:50:11

您也可以尝试检查注册表细节,以验证IE version.Hope,这可能会帮助您找到其他方法。

代码语言:javascript
复制
;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

代码语言:javascript
复制
;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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54616607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档