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

程序启动快捷键后窗口无法退出!

[复制链接]
发表于 2009-10-29 00:31:02 | 显示全部楼层 |阅读模式
本帖最后由 那片叶子 于 2009-10-29 00:52 编辑
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $Paused
$Form1 = GUICreate("测试窗口", 232, 88, 192, 114)
$Button1 = GUICtrlCreateButton("测  试 按 钮", 56, 32, 113, 25, 0)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        HotKeySet("{F1}", "qidong");启动鼠标连点
                        HotKeySet("{End}", "zhanting");暂停鼠标连点

        EndSwitch
WEnd

Func zhanting()
        $Paused = True
        TogglePause()
EndFunc
        
Func TogglePause()
        While $Paused
                Sleep(100)
                ToolTip('暂停鼠标连点', 0, 0)
        WEnd
EndFunc
        
Func qidong()
        ToolTip("")
        While 1
                MouseClick("left")
        WEnd
EndFunc
如上,我点击界面按钮后启动快捷键! 未启动时,测试窗口可以关闭, 按F1启动后,暂停,就无法关闭测试窗口,请各位帮忙看下!谢谢了!
发表于 2009-10-29 00:41:51 | 显示全部楼层
While 除非调用 ExitLoop ,否则无限循环.  是不是这样啊??????????............
发表于 2009-10-29 00:42:10 | 显示全部楼层
本帖最后由 newx 于 2009-10-29 00:45 编辑

Func qidong()
        ToolTip("")
        While 1
                MouseClick("left")
        WEnd
EndFunc
这段代码(启动后),一直在循环MouseClick("left"),可没有退出循环的语句呀
解决:中间加个判断的语句,以执行退出循环
HotKeySet("{ESC}", ExitLoop)
 楼主| 发表于 2009-10-29 00:51:50 | 显示全部楼层
Func qidong()
        ToolTip("")
        While 1
                MouseClick("left")
        WEnd
EndFunc
这段代码(启动后),一直在循环MouseClick("left"),可没有退出循环的语句呀
解决:中间加个 ...
newx 发表于 2009-10-29 00:42


  谢谢大大!!
发表于 2009-10-29 01:08:03 | 显示全部楼层
改了一下
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $Paused
$Form1 = GUICreate("测试窗口", 232, 88, 192, 114)
$Button1 = GUICtrlCreateButton("测  试 按 钮", 56, 32, 113, 25, 0)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        HotKeySet("{F1}", "qidong");启动鼠标连点
                        HotKeySet("{End}", "zhanting");暂停鼠标连点
                        HotKeySet("{ESC}", "nExit");暂停鼠标连点
        EndSwitch
WEnd

Func zhanting()
        $Paused = True
        TogglePause()
EndFunc
        
Func TogglePause()
        While $Paused
                Sleep(100)
                ToolTip('暂停鼠标连点', 0, 0)
        WEnd
EndFunc
        
Func qidong()
        ToolTip("")
        While 1
                MouseClick("left")
        WEnd
EndFunc

Func nExit()
        Exit
EndFunc

评分

参与人数 1金钱 +10 收起 理由
那片叶子 + 10 谢谢老大

查看全部评分

 楼主| 发表于 2009-10-29 01:23:01 | 显示全部楼层
貌似按了ESC就退出了! 能否不让其退出!
 楼主| 发表于 2009-10-29 01:32:47 | 显示全部楼层
弄了个很笨的方法!
Func qidong()
        Global $P=0
        While $p=0
                MouseClick("left")
        WEnd
EndFunc

对while 负值 ,然后按下热键对其再次负值

Func zhanting()
  $p=1
EndFunc

While 表达式说明:若该表达式的值为true(真)则重复执行循环体语句(以WEnd为结束标志),否则循环结束.
发表于 2009-10-29 01:59:40 | 显示全部楼层
Func nExit()
        Exit
EndFunc
改为:
Func nExit()
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        HotKeySet("{F1}", "qidong");启动鼠标连点
                        HotKeySet("{End}", "zhanting");暂停鼠标连点
                        HotKeySet("{ESC}", "nExit");暂停鼠标连点
        EndSwitch
WEnd
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 16:19 , Processed in 0.075776 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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