autoit HotKeySet 函数

HotKeySet ( "热键" [, "函数名"] )

参数








热键 要设置的热键,按键格式与 Send() 函数使用的一样。
函数名 [可选参数] 按下热键后要调用的函数名。留空则撤销此前设置的热键。

返回值








成功: 返回值为1。
失败: 返回值为0。

注意

每个脚本程序最多能同时注册64个热键。

如果有两个 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 内置的快捷键。注意:Win+B 和 Win+L 仅由 Windows XP 以上系统保留。
Alt, Ctrl, Shift, Win 这些都是辅助按键!
其它 任何由第三方软件定义的全局热键、任何由两个或更多“基键”组成的热键(比如 '{F1}{F2}')、任何型如 '{LALT}' 或 '{ALTDOWN}' 的按键。

在设置了一个热键后,AutoIt 将尝试捕获指定按键事件但并不会把它传递到激活程序中,不过也有一个例外:按下 Lock 键(包括 NumLock、CapsLock 和 ScrollLock)在任何时候都将切换其相应状态!如果希望把捕获的热键事件发送到激活程序中,您就必须先注销该热键然后再调用 SendControlSend 函数:

; 捕获并传递按键事件
HotKeySet("{Esc}", "captureEsc")
Func captureEsc()
    ; ... 这里可定义要做的各种任务
    HotKeySet("{Esc}")
    Send("{Esc}")
    HotKeySet("{Esc}", "captureEsc")
EndFunc

相关

Send, ControlSend

示例

; 按下 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

(0)

相关推荐

  • autoit HotKeySet 函数

    HotKeySet ( "热键" [, "函数名"] ) 参数 热键 要设置的热键,按键格式与 Send() 函数使用的一样. 函数名 [可选参数] 按下热键后要调用的函数名.留空则撤销此前设置的热键. 返回值 成功: 返回值为1. 失败: 返回值为0. 注意 每个脚本程序最多能同时注册64个热键. 如果有两个 AutoIt 脚本设置了同样的热键,您应该避免同时运行这两个脚本程序(否则第二个脚本将无法捕获热键,除非第一个脚本终止运行或在第二个脚本设置热键前撤销了冲突

  • autoit InputBox 函数

    函数说明InputBox 显示以一个输入框以供用户输入数据.InputBox ( "标题", "提示信息" [, "默认数据" [, "密码字符" [, 宽度, 高度 [, 左边, 上边 [, 超时时间]]]]] ) 参数 标题 输入框的标题文字. 提示信息 提示用户程序需要获得的数据. 默认数据 显示在输入文本框中的默认文字. 密码字符 [可选参数] 显示在输入文本框中用以代替用户输入字符的字符.如果要正常显示字符只需定义此

  • autoit自定义函数

    内建函数 内建函数的完整列表请到 此处 查看,关于使用内建函数的注意事项请到 此处 查看. 自定义函数 用户可通过使用 Func...EndFunc 语句来自定义函数. 可按需要定义函数的参数及其返回值. 函数名必须用字母或下划线"_"开头,剩下的部分(非首字符)则可在字母.数字或下划线中随意选择.下面列出的都是合法的函数名:     MyFunc     Func1     _My_Func1 下面是一个示例函数,该函数的功能是获得某个数的10倍是多少: 复制代码 代码如下: $va

  • Python+AutoIt实现界面工具开发过程详解

    前言 不同于Linux服务器上的命令行操作,在windows系统上用户的使用习惯还是倾向于使用有界面的工具.如果工具是命令行交互操作的方式,可能是有悖于在windows上使用的操作习惯,往往不容易推广使用. 由于需要维护测试部工具的原因,其中有一个工具是用AutoIt语言实现的,利用几天时间把工具源码学习了一下.发现使用AutoIt可以快速开发工具界面.当然它也能各种逻辑处理,而且也很方便. 但是考虑精力和学习成本,我主要使用AutoIt的方式还是利用它来实现界面开发以及学习基本的语法完成简单的

  • autoit入门教程小结第1/5页

    作者: yonken 据我了解需要编写AutoHotkey/AutoIt脚本来实现自动化操作的用户很多都是网管,其它则可能是一些个人用户,他们一般都具有相当的技术水平,而且都希望能借助脚本来完成某些以往需要人工操作的重复性劳动,但限于语言条件上的限制可能对官方的帮助文档有较难理解之处.为方便读者,我将从最简单的说起,每个示例尽可能同时给出相应的AHK和AU3版本代码.本文将尽可能用较通俗的语言描述,但并不打算讲解语法基础,所以不一定适合新手阅读. 文中涉及到的AHK/AU3版本: AutoHot

  • autoit GUI相关知识

    GUI 的概念 GUI 可由一个或多个 窗口 组成,这些窗口又带有一个或多个控件.GUI是靠"事件驱动"实现与用户的交互的,比如像点击按钮这样的动作就会引发一个事件.程序在空闲状态时等待事件的发生,捕捉到事件时则根据事件执行相关操作.您可以猜想自己在门边等邮差(一直坐在那儿直到有信被送进来为止),等邮差把信送来了,您就要阅读该信并决定下一步做什么,这就跟GUI的原理一样了:您等待的是邮差,而GUI则等待事件, 当然,在GUI(指程序的界面)运行时您也可以选择要做的其它任务,比如使用GU

  • 用autoit编写第一个脚本(Hello World)

    (注意:如果您已经安装了 SciTe 编辑器,它将会代替系统自带的记事本来编辑脚本.) 首先打开你要创建脚本的文件夹,点击鼠标右键然后在菜单中选择 新建 / AutoIt v3 Script . 把脚本文件命名为helloworld.au3.注意扩展名应为.au3--这说明该文件是 AutoIt v3 脚本. 我们已经创建了脚本文件了,现在要做的就是对此脚本进行编辑使其具有我们需要的功能.在helloworld.au3这个脚本文件上点击鼠标右键然后在菜单中选择Edit Script. 接着将会使

  • angularjs指令中的compile与link函数详解

    通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别. angularjs里的指令非常神奇,允许你创建非常语义化以及高度重用的组件,可以理解为web components的先驱者. 网上已经有很多介绍怎么使用指令的文章以及相关书籍,相互比较的话,很少有介绍compile与link的区别,更别说pre-link与post-link了. 大部分教程只是简单的说下compile会在ng内部用到,而且建

  • JavaScript中立即执行函数实例详解

    前言 js立即执行函数可以让你的函数在创建后立即执行,js立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行. ( function(){-} )()和( function (){-} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此. 下面话不多说了,来一起看看详细的介绍吧. 通常我们声

  • PHP中危险的file_put_contents函数详解

    前言 最近在EIS上遇到一道文件上传的题,发现过滤了<,这样基本很多姿势都无效了,想了很久没做出来这题,赛后才知道是利用数组来绕过, 这里分析了下原理,话不多说了,来一起看看详细的介绍吧. 来看下file_put_contents函数第二个参数data的官网定义: data 要写入的数据.类型可以是 string,array 或者是 stream 资源(如上面所说的那样). 如果 data 指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使

随机推荐