邪恶海盗 发表于 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的命令

80ren 发表于 2012-1-4 17:22:10

热键是个好东东,坐等高手

user3000 发表于 2012-1-4 17:37:31

不是有个函数吗? HotKeySet

xiehuahere 发表于 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")报错...

hzxymkb 发表于 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


原来可以有多个循环....{:face (52):}

这条貌似是直接定义快捷键命令,然后用快捷键执行,楼上那个貌似是定义每个操作为一个值,然后把相应的值设置快捷键,再来实现快捷键执行命令,但为啥就是报错呢???

邪恶海盗 发表于 2012-1-4 19:16:25

回复 6# hzxymkb


    原来这个循环放在前面会影响后面循环脚本里的关闭消息的,放到后面去就不影响了{:face (317):}

xiehuahere 发表于 2012-1-4 20:13:03

回复 5# 邪恶海盗


    这个设置热键的语句本身没错,
   主要是对应的函数定义有两处写错了, EndFunc 写成了 End Func。多了空格。
   修改下就好了。
   
   版主给的就是帮助里的例子啊。

afan 发表于 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


    一直不知道可以有多个循环的...{:face (271):}

去掉多余空格不报错了...{:face (317):}

xiehuahere 发表于 2012-1-4 20:28:34

回复 10# afan


    这个正解!
   我等不知不觉中被楼主引导了。还是afan意识强大,不受其扰。

邪恶海盗 发表于 2012-1-4 20:33:23

回复 10# afan


鼠标执行???

xiehuahere 发表于 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)一直这样写的,才发现可以用...{:face (87):}
页: [1] 2
查看完整版本: [已解决]已有的无限循环中如何插入热键???