找回密码
 加入
搜索
查看: 2388|回复: 4

[AU3基础] 与外部窗口移动所产生的非数组变量错误【已解决】

[复制链接]
发表于 2011-2-26 11:03:58 | 显示全部楼层 |阅读模式
本帖最后由 visualc 于 2011-2-26 13:32 编辑

请帮忙看看·如图所示,因为这个是和外部窗口移动的,关闭外部窗口,这个就出错,感谢!!
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form2 = GUICreate("Form2", 392, 60,-200,-200 ,  BitOR($WS_MINIMIZEBOX,$WS_POPUP,$WS_GROUP), BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))

GUISetState(@SW_SHOW)
$new=WinWait("Panel   V7.1","")
While 1
                   $XY = WinGetPos($Form2)
                         $XY2 = WinGetPos($new)
                       If $XY2[0] <> $XY[0] Or $XY2[1] <> $XY[1] then
                                WinMove($Form2, "", $XY2[0]+1, $XY2[1]+320)
                               WinSetOnTop('Form2','',1)
                                                           EndIf
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit                                
        EndSwitch
        
WEnd

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-2-26 11:31:11 | 显示全部楼层
这是自然,你这个脚本命令在循环内,外部窗口如果关闭,$XY2 = WinGetPos($new)命令自然失败,返回0,那时$XY2就不是一个数组了,然后你下面来个$XY2[0],自然报错,你应该在WinGetPos之前增加窗口是否存在的判断,存在则进行,不存在就不进行呗
发表于 2011-2-26 11:34:26 | 显示全部楼层
在用$XY/$XY2之前,要先判断是不是数组:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form2 = GUICreate("Form2", 392, 60, -200, -200, BitOR($WS_MINIMIZEBOX, $WS_POPUP, $WS_GROUP), BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))

GUISetState(@SW_SHOW)
$new = WinWait("Panel   V7.1", "")
While 1
        $XY = WinGetPos($Form2)
        $XY2 = WinGetPos($new)
        If IsArray($XY) And IsArray($XY2) Then
                If $XY2[0] <> $XY[0] Or $XY2[1] <> $XY[1] Then
                        WinMove($Form2, "", $XY2[0] + 1, $XY2[1] + 320)
                        WinSetOnTop('Form2', '', 1)
                EndIf
        EndIf
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch

WEnd
 楼主| 发表于 2011-2-26 13:31:53 | 显示全部楼层
回复 3# happytc

谢谢 !!!!
发表于 2013-4-25 13:21:59 | 显示全部楼层
有没有再快一点移动的办法,外部窗口动的时候,AU3的窗口有很大的拖影,做不到一起的效果,高手出面提供下思路。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 05:38 , Processed in 0.101474 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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