aardio 文档

key.hotkey 库模块帮助文档

超级热键使用指南

key 成员列表 #

key.hotkey #

超级热键支持库。
可用于注册一组连续按下的键作为全局有效的热键,热键检测规则如下:

  1. 如果首个按下的键不是控制键,则不需要同时按住多个键。
  2. 如果首次按住的是控制键( CTRL,ALT,SHIFT,WIN 之一),则必须同时按住多个键才算完成热键。
    如果已完成全部按键的热键同时又是其他热键的前半部分,则必须放开所有键才会生效。
  3. 仅每组热键开始部分的控制键不区分顺序,例如 Ctrl+Shift+A,Shift+Ctrl+A 是等价的。
  4. 如果注册单个控制键热键,并且加上 @ 前缀,则放开该键(且中间没有按其他键)才算完成热键。
  5. 所有虚拟键名仅表示单个按键,例如~ 表示 ~键而非Shift+~ 这两个按键。

key.hotkey() #

创建热键方案管理器
当前线程必须是使用 win.loopMessage 函数启动消息循环的界面线程。

返回对象:keyHotkeyObject

keyHotkeyObject 成员列表 #

keyHotkeyObject.clear() #

清除所有热键

keyHotkeyObject.clearKeys() #

清除已捕获的热键

keyHotkeyObject.close() #

关闭热键方案管理器
成功返回null,失败返回错误信息,错误代码

keyHotkeyObject.getControlKeys() #

返回所有预设控制键的虚拟键名,
控制键如果放开就表示超级热键已结束检测

keyHotkeyObject.getEndKeys() #

返回所有预设终止键虚拟键名

keyHotkeyObject.healthCheckInterval #

定时检测并修复键盘钩有效性的默认时间间隔,以毫秒为单位。
修改此值在下次调用 key.hotkey 对象的 reset 方法时生效。
设为 null 禁用此功能。

keyHotkeyObject.loadTable(配置表) #

使用配置表注册热键,
配置表中每个名值对调用 regStr 函数注册为热键

keyHotkeyObject.reg #

keyHotkeyObject.reg(  
    "~","H","I",  
    function(hFocusWnd,...){  
        ..key.sendString("此回调函数返回true继续发送原来的按键")  
    }   
)

keyHotkeyObject.regEndStr(超级热键,回调函数或输入文本) #

参数@1指定包含一个或多个虚拟键名的字符串。

参数 @2 可以是一段用于输出的文本, aardio 代码或 aardio 文件,
也可以是一个回调函数,回调函数执行时间不应超过200毫秒,
该回调函数可返回布尔值指定是否取消当前按键事件,
也可以返回一个自动延时执行的函数并取消当前按键事件。
此函数注册的热键必须在最后按下预设的终止键时才会触发
使用 setEndKeys 函数可以修改预设终止键
输入文本如果以美元符号结束 $,则输出当前终止键到目标窗体.

参数@1不区分大小写,字符间不能有空白,
如果首个控制按键使用+号分隔,则其他所有按键都要用逗号分开

keyHotkeyObject.regStr(超级热键,回调函数或输入文本) #

参数@1指定包含一个或多个虚拟键名的字符串,
尾部可用'\0'表示终止键。

参数 @2 可以是一段用于输出的文本,aardio 代码或 aardio 文件,
也可以是一个回调函数,回调函数执行时间不应超过200毫秒,
该回调函数可返回布尔值指定是否取消当前按键事件,
也可以返回一个自动延时执行的函数并取消当前按键事件。

参数 @1 不区分大小写,字符间不能有空白,
如果首个控制按键使用+号分隔,则其他所有按键都要用逗号分开

keyHotkeyObject.reset #

重置热键

keyHotkeyObject.reset() #

清除所有热键与记录的按键状态,并且重新创建键盘钩子

keyHotkeyObject.reset(true) #

清除记录的按键状态并且重新创建键盘钩子,
但保留已注册的热键方案。

keyHotkeyObject.setControlKeys("字符串参数") #

设定控制键,支持不定个数参数,支持虚拟键名或键码
默认控制键为左右CTRL,ALT,SHIFT,WIN

keyHotkeyObject.setEndKeys("字符串参数") #

设定预设终止键,支持不定个数参数
支持虚拟键名或键码.

keyHotkeyObject 事件列表 #

keyHotkeyObject.onKeyDown #

keyHotkeyObject.onKeyDown = function(vk){
    /*按键时触发,返回true阻止按键事件  
注意返回true会阻止超级热键*/
}

keyHotkeyObject.onKeyUp #

keyHotkeyObject.onKeyUp = function(vk){
    /*放开按键时触发,返回true阻止放开按键事件  
注意会先检测处理超级热键再触发此事件*/
}

keyHotkeyObject.onWaiting #

keyHotkeyObject.onWaiting = function(hwnd,enteredKeys,waitingKeys){
    if(!enteredKeys){
        /*已完成热键*/
        return;
    } 
    var str = (
        '已按下键:' 
        + ..string.join(enteredKeys,"+")  
        + ' 等待候选键:' 
        + ..string.join(waitingKeys,",") 
    )
}

Markdown 格式