tubaba 发表于 2013-11-4 19:11:52

在64位系统环境下,使用_IEAttach失败的原因

经过测试,发现在64位系统环境下,使用shell.application的windows方法,不能枚举到由InternetExplorer.application创建的IE窗口.导致_IEAttach失败,不知道有什么方法可以解决这一问题
可用以下代码测试ShellExecute('iexplore.exe')
Sleep(2000)
$oIE = ObjCreate("InternetExplorer.Application")
$oIE.navigate('about:blank')
$oIE.Visible = True
Sleep(2000)
Local $oShell = ObjCreate("shell.application") ; 获取窗口 Shell 对象
Local $oShellWindows = $oShell.windows ; 获取窗口 Shell 集合

If IsObj($oShellWindows) Then

    Local $string = "" ; 用于显示用途的字符串

    For $Window In $oShellWindows ; 计数现有 Shell 窗口
      $string = $string & $Window.LocationName & @CRLF
    Next

    MsgBox(0, "窗口 Shell","您打开以下 Shell 窗口:" & @CRLF & @CRLF & $string);

EndIf
Exit
注:我使用的autoit版本是3.3.6.1

huangke 发表于 2013-11-24 19:06:06

我的是win7 64位的,枚举正常啊。。。

zch11230 发表于 2013-11-26 00:06:54

我已经习惯不管支不支持X64 开头一率加上#AutoIt3Wrapper_UseX64=n

wszhov 发表于 2013-11-26 07:33:30

回复 3# zch11230


    唉,有时候就算加了也没用,草了,有可能版本不同就不行了,3.3.9.21这个版本有时候#AutoIt3Wrapper_UseX64=n加了这个也不能正确的获取com对象,气死人了,目前遇到几个bug,不知道是版本问题还是机器(估计不是)问题

tubaba 发表于 2013-11-27 12:58:01

回复 4# wszhov


    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\CIMV2")

在3.3.9.X以上版本运行时停止错误

wszhov 发表于 2013-11-28 06:18:38

回复 5# tubaba


    系统有原因的,估计是,也可能还是版本问题,vbs能正常获取对象
页: [1]
查看完整版本: 在64位系统环境下,使用_IEAttach失败的原因