找回密码
 加入
搜索
查看: 5134|回复: 26

[已解决]已有的无限循环中如何插入热键???

 火.. [复制链接]
发表于 2012-1-4 17:18:16 | 显示全部楼层 |阅读模式
本帖最后由 邪恶海盗 于 2012-1-4 22:52 编辑
While 1
 $nMsg = GUIGetMsg()
        Switch $nMsg
Case $GUI_EVENT_CLOSE
     Exit
Case $Label4
****
Case $Button3
        MsgBox(0+262144, "@关于", "通用绿化工具" & @LF & "By:邪恶海盗", 3)
Case $Button4
         Exit
        EndSwitch
这是代码中的一段无限循环,现在想要实现的效果是插入热键执行命令,比如按Alt+C执行$Buton4,按ALT+A执行$Buton3的命令
发表于 2012-1-4 17:22:10 | 显示全部楼层
热键是个好东东,坐等高手
发表于 2012-1-4 17:37:31 | 显示全部楼层
不是有个函数吗? HotKeySet
发表于 2012-1-4 17:45:07 | 显示全部楼层
下面的方法供参考:
$flag = 0
HotKeySet("!a", "OnButton3Press")
HotKeySet("!c", "OnButton4Press")
While 1
        $nMsg = GUIGetMsg()
        Switch $flag
             case 3
                  $nMsg = $Button3
              case 4
                  $nMsg = $Button4
              case else
                  MsgBox(0,'', "No such button defined!")
        EndSwitch
        $flag = 0
        Switch $nMsg
              xxxxxxxx
        EndSwitch
WEnd
Func OnButton3Press()
      $flag = 3
End Func
Func OnButton4Press()
      $flag = 4
End Func
 楼主| 发表于 2012-1-4 18:25:31 | 显示全部楼层
HotKeySet("!a", "OnButton3Press")
HotKeySet("!c", "OnButton4Press")
报错...
发表于 2012-1-4 18:42:39 | 显示全部楼层
; 按Esc键终止脚本, 按Pause/Break键暂停

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d

;;;; 下面是程序正文 ;;;;
While 1
        Sleep(100)
WEnd
;;;;;;;;

Func TogglePause()
        $Paused = Not $Paused
        While $Paused
                Sleep(100)
                ToolTip('脚本已经"暂停"了',0,0)
        WEnd
        ToolTip("")
EndFunc

Func Terminate()
        Exit 0
EndFunc

Func ShowMessage()
        MsgBox(4096,"标题","这是一个消息.")
EndFunc
 楼主| 发表于 2012-1-4 18:59:45 | 显示全部楼层
回复 6# hzxymkb


原来可以有多个循环....

这条貌似是直接定义快捷键命令,然后用快捷键执行,楼上那个貌似是定义每个操作为一个值,然后把相应的值设置快捷键,再来实现快捷键执行命令,但为啥就是报错呢???
 楼主| 发表于 2012-1-4 19:16:25 | 显示全部楼层
回复 6# hzxymkb


    原来这个循环放在前面会影响后面循环脚本里的关闭消息的,放到后面去就不影响了
发表于 2012-1-4 20:13:03 | 显示全部楼层
回复 5# 邪恶海盗


    这个设置热键的语句本身没错,
   主要是对应的函数定义有两处写错了, EndFunc 写成了 End Func。多了空格。
   修改下就好了。
   
   版主给的就是帮助里的例子啊。
发表于 2012-1-4 20:24:40 | 显示全部楼层
这个用得着热键吗?
$Button4 = GUICtrlCreateButton('xx(&C)', xx, xx, xx, xx)
 楼主| 发表于 2012-1-4 20:28:34 | 显示全部楼层
本帖最后由 邪恶海盗 于 2012-1-4 20:37 编辑

回复 9# xiehuahere


    一直不知道可以有多个循环的...

去掉多余空格不报错了...
发表于 2012-1-4 20:28:34 | 显示全部楼层
回复 10# afan


    这个正解!
   我等不知不觉中被楼主引导了。还是afan意识强大,不受其扰。
 楼主| 发表于 2012-1-4 20:33:23 | 显示全部楼层
回复 10# afan


鼠标执行???
发表于 2012-1-4 20:36:26 | 显示全部楼层
回复 13# 邪恶海盗


    在按钮名称中加入 &C (显示为带下划线的C字母) 就等于是可以通过 alt+C 执行按钮操作。
 楼主| 发表于 2012-1-4 20:39:38 | 显示全部楼层
回复 14# xiehuahere
$Button3 = GUICtrlCreateButton("关于(&A)", 60, 192, 65, 21)
$Button4 = GUICtrlCreateButton("退出(&C)", 140, 192, 65, 21)
一直这样写的,才发现可以用...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-17 02:12 , Processed in 0.084643 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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