找回密码
 加入
搜索
查看: 4967|回复: 5

[IE类操作] 在64位系统环境下,使用_IEAttach失败的原因

  [复制链接]
发表于 2013-11-4 19:11:52 | 显示全部楼层 |阅读模式
经过测试,发现在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
发表于 2013-11-24 19:06:06 | 显示全部楼层
我的是win7 64位的,枚举正常啊。。。
发表于 2013-11-26 00:06:54 | 显示全部楼层
我已经习惯不管支不支持X64 开头一率加上#AutoIt3Wrapper_UseX64=n
发表于 2013-11-26 07:33:30 | 显示全部楼层
回复 3# zch11230


    唉,有时候就算加了也没用,草了,有可能版本不同就不行了,3.3.9.21这个版本有时候#AutoIt3Wrapper_UseX64=n加了这个也不能正确的获取com对象,气死人了,目前遇到几个bug,不知道是版本问题还是机器(估计不是)问题
 楼主| 发表于 2013-11-27 12:58:01 | 显示全部楼层
回复 4# wszhov


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

在3.3.9.X以上版本运行时停止错误
发表于 2013-11-28 06:18:38 | 显示全部楼层
回复 5# tubaba


    系统有原因的,估计是,也可能还是版本问题,vbs能正常获取对象
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-4 05:22 , Processed in 0.073136 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表