找回密码
 加入
搜索
查看: 3361|回复: 7

[AU3基础] 求解:子脚本使用了非数组变量

  [复制链接]
发表于 2012-5-5 16:40:48 | 显示全部楼层 |阅读模式
本帖最后由 xhz520 于 2012-5-5 16:44 编辑

以下这断代码,如果不加上2句sleep(100)的话就会出现 子脚本使用了非数组变量 错误。到底那里错了哦??求指点~~!
        $aWindowsX = _WinAPI_EnumChildWindows($form)
        For $i = 1 To $aWindowsX[0][0]
                If $aWindowsX[$i][1] = "MacromediaFlashPlayerActiveX" Then                        
                                                $login_chack[0] = 1
                        $hwnd_game = $aWindowsX[$i][0]
                        $login_chack[1] = $aWindowsX[$i][0]                        
                                                Return $login_chack
                EndIf
                Sleep(100)
        Next
        $aWindows = _WinAPI_EnumChildWindows($form)
        For $i = 1 To $aWindows[0][0]
                If $aWindows[$i][1] = "Internet Explorer_Server" Then                        
                                                $login_chack[0] = 0
                        $hwnd_ye = $aWindows[$i][0]
                        $login_chack[1] = $aWindows[$i][0]
                        Return $login_chack
                EndIf
                Sleep(100)
        Next
发表于 2012-5-5 17:12:16 | 显示全部楼层
回复 1# xhz520

如果是我, 会这么编写这个自定义函数, 将两个循环整合成一个:
$aWindowsX = _WinAPI_EnumChildWindows($form)
If Not IsArray($aWindowsX) Then Return SetError(1)
For $i = 1 To $aWindowsX[0][0]
        If $aWindowsX[$i][1] = "MacromediaFlashPlayerActiveX" Then
                $login_chack[0] = 1
                $hwnd_game = $aWindowsX[$i][0]
                $login_chack[1] = $aWindowsX[$i][0]
                Return $login_chack
        ElseIf $aWindowX[$i][1] = "Internet Explorer_Server" Then
                $login_chack[0] = 0
                $hwnd_ye = $aWindowsX[$i][0]
                $login_chack[1] = $aWindowsX[$i][0]
        EndIf
Next
Return $login_chack
发表于 2012-5-5 17:13:44 | 显示全部楼层
代码不完整,楼主还是精简出关键的错误代码再来发帖吧,另外再编辑器里运行有显示哪一行错了楼主连为何没发出来?
经鉴定,问题表述不清楚,退回修改。
 楼主| 发表于 2012-5-5 17:19:51 | 显示全部楼层
回复 2# user3000


    恩恩。谢谢指教~~!已经修改了~!
 楼主| 发表于 2012-5-5 17:22:29 | 显示全部楼层
回复 3# tryhi


编辑器里运行一直没问题的。是编译后的程序,加了运行参数引起的问题~!提示在15572行错误,我都不知道在那~!我代码都没这么长 - -!
 楼主| 发表于 2012-5-5 17:24:52 | 显示全部楼层
问题找到了~~!估计是开始枚举子窗口太快了吧。"Internet Explorer_Server"这个类是打开浏览器后要晚1秒左右才会出现~~!
发表于 2012-5-6 04:04:46 | 显示全部楼层
回复 2# user3000
两个条件里除了第一行一样,后面两行是一样的,你不觉得这么写很累吗
发表于 2012-5-6 04:10:28 | 显示全部楼层
回复  xhz520

如果是我, 会这么编写这个自定义函数, 将两个循环整合成一个:
user3000 发表于 2012-5-5 17:12



    [au3]$aWindowsX = _WinAPI_EnumChildWindows($form)
If Not IsArray($aWindowsX) Then Return SetError(1)
For $i = 1 To $aWindowsX[0][0]
        If $aWindowsX[$i][1] = "MacromediaFlashPlayerActiveX" Then
                $login_chack[0] = 1
        ElseIf $aWindowX[$i][1] = "Internet Explorer_Server" Then
                $login_chack[0] = 0
        EndIf
        $login_chack[1] = $aWindowsX[$i][0]
Next
Return $login_chack
[/au3]
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 04:20 , Processed in 0.081656 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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