GUI窗口不能关闭,请高手帮忙指教
本帖最后由 17911 于 2009-5-26 12:17 编辑本人菜鸟,在脚本里加入AdlibEnable调用自定义函数ddd()后窗口不能正常关闭了,点关闭x没有反应,请帮忙解决一下
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <string.au3>
$Form1 = GUICreate("", 190, 240)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 190, 190, $ES_WANTRETURN)
$Button1 = GUICtrlCreateButton("显示", 10, 200, 150, 30)
GUISetState(@SW_SHOW)
AdlibEnable("ddd",10000)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$a = GUICtrlRead($Edit1)
$b = StringLen($a)
For $i = 1 To Round($b / 30)
If $i = 1 Then
$a = _StringInsert($a, @CR, $i * 30)
Else
$a = _StringInsert($a, @CR, $i * 30 + ($i - 1))
EndIf
Next
MsgBox(0, "", $a)
EndSwitch
WEnd
Func ddd()
Dim $i
$i=5
for $i=5 to $i^1000 Step 12
MsgBox(0+64,"你好","请注意休息,你已经上网"&$i&"秒",2)
Sleep(10000)
Next
EndFunc
楼主的程序有问题 FUNC 不应该写在WHILE里面
AdlibEnable并不是真正的多线程 他是暂停掉程序去运行其设置的FUNC里的内容 如果这个FUNC里有比较大的循环就会导致程序不能成功发送关闭的消息 楼主的提示可以考虑换个方式 那个循环的美看懂什么意思 本帖最后由 17911 于 2009-5-25 22:04 编辑
楼主的程序有问题 FUNC 不应该写在WHILE里面
AdlibEnable并不是真正的多线程 他是暂停掉程序去运行其设置的FUNC里的内容 如果这个FUNC里有比较大的循环就会导致程序不能成功发送关闭的消息 楼主的提示可以考虑换个 ...
就是每隔10秒钟弹出提示消息框:请注意休息,你已经上网多少秒,步进值为12,考虑停顿12秒,惭愧,没想出在循环中结束时间设置无限大怎么写就用临时用$i^1000 尝试使用判断句不用循环没成功 那你把这个FUNC设置成12秒显示一次 每次弹出一个MSGBOX不就可以了吗 何必去循环 本帖最后由 17911 于 2009-5-26 12:17 编辑
那你把这个FUNC设置成12秒显示一次 每次弹出一个MSGBOX不就可以了吗 何必去循环
呵呵,开始只是为了练习就设置隔10秒弹出一次消息框而且持续下去就考虑的复杂了,就像软件提示注册一样无限循环,自己搞定了
页:
[1]