autoit HotKeySet 函数

 更新时间:2008年06月18日 21:56:52   作者:  
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

相关文章

  • autoit 更改个人文件夹的小工具

    autoit 更改个人文件夹的小工具

    功 能:更改个人文件夹的位置 原 理:找到注册表中的相应位置,显示出来,并通过修改对应的键值来指定路径。 注意事项:本程序不移动文件夹,只是指定路径;修改完成后,请马上重新启动。
    2008-07-07
  • Aut2Exe编译au3脚本为可执行文件

    Aut2Exe编译au3脚本为可执行文件

    把AutoIt的.au3脚本文件编译成可独立运行的程序当然是可实现的,这样就可以使得编译后的程序得以在没有安装AutoIt(或者说没有AutoIt3.exe这个解释程序)的机器上运行。
    2008-06-06
  • 用autoit编写第一个脚本(Hello World)

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

    此页将介绍创建并运行AutoIt脚本的一些基本方法。我们假定您已经使用我们提供的安装程序安装好了AutoIt v3。
    2008-06-06
  • 获取外网IP并发送到指定的邮箱的脚本

    获取外网IP并发送到指定的邮箱的脚本

    来自小A的源码,其实用到的全部是AU3自带的UDF,非常有学习的意义!功能:获取外网IP并将IP发送到配置文件中定义的邮箱
    2012-05-05
  • 飞信的CMD命令行接口批量发送信息

    飞信的CMD命令行接口批量发送信息

    最近在用AU3开发一款用来调用飞信发送短信的小东东 飞信是个很好的东西,可惜用的人少,很多不厚道的同学注册之后就不再登录了.
    2008-09-09
  • QQ向陌生人聊天的autoit脚本

    QQ向陌生人聊天的autoit脚本

    直接输入对方的qq号即可和对方交谈的autoit脚本,没什么技术含量,就是需要掌握下autoit的相关知识
    2008-06-06
  • AutoIT写的禁止QQ运行的程序代码

    AutoIT写的禁止QQ运行的程序代码

    autoit的东西,确实不错,推荐大家学习之,最近没时间,稍后我们一起学习
    2008-06-06
  • autoit 命令行参数说明

    autoit 命令行参数说明

    命令行参数 AutoIt 脚本程序可通过命令行调用,当我们传递命令行参数到脚本中的时候会有一个特殊的数组 $CmdLine 保存相关数据。
    2008-06-06
  • AutoIt3和按键精灵的功能对比

    AutoIt3和按键精灵的功能对比

    AutoIt3和按键精灵的比较 无其他的意思,刚看到,顺手转了过来,给想学AUtoIT的同志看看,以下是国内(AutoIT )二位高手的评价(本论坛高手也多,只是一直默默无闻,象几位版主
    2008-06-06
  • Au3截取腾讯天气的脚本

    Au3截取腾讯天气的脚本

    腾讯的天气是相当的准呀.而且还有实时天气, 今天把它给应用上了,附上源代码抛砖引玉.
    2008-09-09

最新评论