xhz520 发表于 2012-5-5 16:40:48

求解:子脚本使用了非数组变量

本帖最后由 xhz520 于 2012-5-5 16:44 编辑

以下这断代码,如果不加上2句sleep(100)的话就会出现 子脚本使用了非数组变量 错误。到底那里错了哦??求指点~~!        $aWindowsX = _WinAPI_EnumChildWindows($form)
        For $i = 1 To $aWindowsX
                If $aWindowsX[$i] = "MacromediaFlashPlayerActiveX" Then                       
                                                $login_chack = 1
                        $hwnd_game = $aWindowsX[$i]
                        $login_chack = $aWindowsX[$i]                       
                                                Return $login_chack
                EndIf
                Sleep(100)
        Next
        $aWindows = _WinAPI_EnumChildWindows($form)
        For $i = 1 To $aWindows
                If $aWindows[$i] = "Internet Explorer_Server" Then                       
                                                $login_chack = 0
                        $hwnd_ye = $aWindows[$i]
                        $login_chack = $aWindows[$i]
                        Return $login_chack
                EndIf
                Sleep(100)
        Next

user3000 发表于 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
        If $aWindowsX[$i] = "MacromediaFlashPlayerActiveX" Then
                $login_chack = 1
                $hwnd_game = $aWindowsX[$i]
                $login_chack = $aWindowsX[$i]
                Return $login_chack
        ElseIf $aWindowX[$i] = "Internet Explorer_Server" Then
                $login_chack = 0
                $hwnd_ye = $aWindowsX[$i]
                $login_chack = $aWindowsX[$i]
        EndIf
Next
Return $login_chack

tryhi 发表于 2012-5-5 17:13:44

代码不完整,楼主还是精简出关键的错误代码再来发帖吧,另外再编辑器里运行有显示哪一行错了楼主连为何没发出来?
经鉴定,问题表述不清楚,退回修改。

xhz520 发表于 2012-5-5 17:19:51

回复 2# user3000


    恩恩。谢谢指教~~!已经修改了~!

xhz520 发表于 2012-5-5 17:22:29

回复 3# tryhi


编辑器里运行一直没问题的。是编译后的程序,加了运行参数引起的问题~!提示在15572行错误,我都不知道在那~!我代码都没这么长 - -!

xhz520 发表于 2012-5-5 17:24:52

问题找到了~~!估计是开始枚举子窗口太快了吧。"Internet Explorer_Server"这个类是打开浏览器后要晚1秒左右才会出现~~!

netegg 发表于 2012-5-6 04:04:46

回复 2# user3000
两个条件里除了第一行一样,后面两行是一样的,你不觉得这么写很累吗

netegg 发表于 2012-5-6 04:10:28

回复xhz520

如果是我, 会这么编写这个自定义函数, 将两个循环整合成一个:
user3000 发表于 2012-5-5 17:12 http://www.autoitx.com/images/common/back.gif


    $aWindowsX = _WinAPI_EnumChildWindows($form)
If Not IsArray($aWindowsX) Then Return SetError(1)
For $i = 1 To $aWindowsX
        If $aWindowsX[$i] = "MacromediaFlashPlayerActiveX" Then
                $login_chack = 1
        ElseIf $aWindowX[$i] = "Internet Explorer_Server" Then
                $login_chack = 0
        EndIf
        $login_chack = $aWindowsX[$i]
Next
Return $login_chack
页: [1]
查看完整版本: 求解:子脚本使用了非数组变量