HOTKEYSET

HOTKEYSET函式参考HotKeySet
设定一个可调用某用户函式的热键.
【HOTKEYSET】HotKeySet ( "热键" [, "函式名"] )
基本介绍中文名:HOTKEYSET
类别:编程函式
作用:设定一个可调用用户函式的热键
成功表现:返回值1
参数函式参考HotKeySet设定一个可调用某用户函式的热键.HotKeySet ( "热键" [, "函式名"]热键要设定的热键,按键格式与 Send() 函式使用的一样.函式名[可选参数] 按下热键后要调用的函式名.留空则撤销此前设定的热键.返回值成功:返回值为 1.失败:返回值为 0.注意It is better to use the lower keyboard key as for keyboard as Russian one, the unshifted key is not the lower value. I.E. "D" is not the upper case of "B". The Hotkey will not be set and a failure will occur.如果有两个 AutoIt 脚本设定了同样的热键,您应该避免同时运行这两个脚本程式(否则第二个脚本将无法捕获热键,除非第一个脚本终止运行或在第二个脚本设定热键前撤销了冲突热键).用户按下热键后 *通常会* 中断当前运行中的 AutoIt 函式/语句,并运行该热键关联的用户函式,直到其完成操作或被中断为止.当然也会有些例外:1) 如果当前(运行的)函式是个"阻断型(blocking)"函式,则键击动作将被缓冲并等待该阻断型函式完成操作后才继续执行.MsgBox 和 FileSelectFolder 就是典型的阻断型函式.您可以试试在下面示例脚本中定义的热键 Shift-Alt-d.2) 如果您在 AutoIt 的托盘选单上选择了暂停脚本则任何在暂停期间按下的热键都将被忽略.不能设定的热键:Ctrl+Alt+Delete由 Windows 系统保留F12也是由 Windows 保留,涉及到 API.小键盘上的 Enter(回车)键使用 {Enter} 即可同时捕获主键盘和小键盘上的回车键.Win+B,D,E,F,L,M,R,U; 以及 Win+Shift+M这些都是 Windows 内置的快捷键. Note: Win+B 和 Win+L 仅由 Windows XP 以上系统保留.Alt, Ctrl, Shift, Win这些都是辅助按键!其它任何由第三方软体定义的全局热键、任何由两个或更多"基键"组成的热键 '{F1}{F2}', 任何型如'{LALT}' 或 '{ALTDOWN}'的按键.在设定了一个热键后,AutoIt 将尝试捕获指定按键事件但并不会把它传递到激活程式中,不过也有一个例外:按下 Lock 键(包括 NumLock、CapsLock 和 ScrollLock)在任何时候都将切换其相应状态!如果希望把捕获的热键事件传送到激活程式中,您就必须先注销该热键然后再调用 Send 或 ControlSend 函式:; 捕获并传递按键事件HotKeySet("{Esc}", "captureEsc")Func captureEsc(); 这里可定义要做的各种任务HotKeySet("{Esc}")Send("{Esc}")HotKeySet("{Esc}", "captureEsc")EndFunc要调用一个函式 不能 给函式加上参数. 它将会被忽略.@HotKeyPressed 宏可以用于一些函式中得到相应按键的句柄.相关Send, GUISetAccelerators示例/演示; 按Esc键终止脚本, 按Pause/Break键暂停Global$PausedHotKeySet("{PAUSE}","TogglePause")HotKeySet("{ESC}","Terminate")HotKeySet("+!d","ShowMessage");Shift-Alt-d;;;; 下面是程式正文 ;;;;While1Sleep(100)WEnd;;;;;;;;FuncTogglePause()$Paused=Not$PausedWhile$PausedSleep(100)ToolTip('脚本已经"暂停"了',0,0)WEndToolTip("")EndFunc ;==>TogglePauseFuncTerminate()Exit0EndFunc ;==>TerminateFuncShowMessage()MsgBox(4096,"标题","这是一个讯息.")EndFunc ;==>ShowMessage