找回密码
 加入
搜索
查看: 1988|回复: 8

程序使用了循环之后无法获取窗口消息!

[复制链接]
发表于 2009-1-5 06:56:44 | 显示全部楼层 |阅读模式
如题。。。
程序如下:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Opt("GUIOnEventMode", 1) 
$Form1 = GUICreate("我的程序", 350, 223, 192, 114)
$safe = GUICtrlCreateButton("保护", 211, 192, 59, 25, 0)
$stopsafe = GUICtrlCreateButton("停止", 278, 192, 59, 25, 0)
GUICtrlSetOnEvent($safe,"safe")
GUICtrlSetOnEvent($stopsafe,"stopsafe")
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") 
GUISetState(@SW_SHOW)
While 1
        Sleep(1000)
WEnd
Func CLOSEClicked()
        Exit
EndFunc
Func safe()
do
If Not ProcessExists("qq.exe") Then
    Run("d:\myqq\qq.exe")
    EndIf
Sleep(5000)
$i=0
Until $i=1;不断地执行检测
EndFunc
Func stopsafe()
exitloop;此处为什么不能中断上面的循环?
endfunc


Func stopsafe()
exitloop;此处为什么不能中断上面的循环?要停止上面的循环非要设置热键么?有没其它办法?改成EXIT之后,依然是按停止无法退出程序!如何是好?将until $i=1改成until stopsafe() 程序运行一下就停止了。如果改成until $stopsafe。程序执行一次,不能循环了。。怎么办?望达人们指教……

[ 本帖最后由 半芯蕃茄 于 2009-1-11 01:04 编辑 ]
发表于 2009-1-5 09:11:09 | 显示全部楼层
Switch @GUI_CtrlId


是不是因为这个原因?
发表于 2009-1-5 18:34:19 | 显示全部楼层
我也是循环之后跳不出 怎么办啊
我定义了两个BUTTON 第一个BUTTON 下面有一个无限的WHILE循环 然后第二个是一个退出程序的按钮 我先按下第一个按钮之后 第二个就不能被执行了
发表于 2009-1-5 19:10:03 | 显示全部楼层
...exitloop跑到while结构外面能结束循环就神奇了...
发表于 2009-1-5 19:15:37 | 显示全部楼层
我的WHILE无限循环里 有一个很长的SLEEP时间 哎 想尽办法也跳不出来啊
发表于 2009-1-5 20:43:32 | 显示全部楼层

是这个原因吧

$i=0
Until $i=1;不断地执行检测

不按第一个保护按钮,直接按第二个可以结束用(exit)
发表于 2009-1-5 23:06:17 | 显示全部楼层
ExitLoop不允许在循环结构之外...这种规则很多语言里都是基本通用的...

楼上的都运行试试在下结论吧

[ 本帖最后由 rolaka 于 2009-1-5 23:11 编辑 ]
发表于 2009-1-5 23:15:46 | 显示全部楼层
AdlibEnable
解决了 哈哈哈 这个函数很有用
发表于 2009-1-5 23:22:44 | 显示全部楼层
用scite写完直接测试脚本,,,
有语法错误一看都知道...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 19:35 , Processed in 0.076430 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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