超级热键支持库
超级热键,指的是一组连续按下的键作为热键并触发相应的操作,
超级热键检测规则如下:
1、如果首个按下的键不是控制键,则不需要同时按住多个键
2、如果首次按住控制键不放开,则多个组合键需要同时按住触发相应的操作,
控制键指的是CTRL,ALT,SHIFT,WIN键
3、单字符虚拟键名(例如~
)不需要按 Shift 键
4、超级热键支持按键顺序检测,
例如 CTRL+SHIFT,SHIFT+CTRL 触发不同回调,
当然也可以指向同一回调函数
创建热键方案管理器
当前线程必须是使用 win.loopMessage 函数启动消息循环的界面线程。
清除所有热键
清除已捕获的热键
关闭热键方案管理器
成功返回null,失败返回错误信息,错误代码
返回所有预设控制键的虚拟键名,
控制键如果放开就表示超级热键已结束检测
返回所有预设终止键虚拟键名
使用配置表注册热键,
配置表中每个名值对调用 regStr 函数注册为热键
keyHotkeyObject.onKeyDown = function(vk){
/*按键时触发,返回true阻止按键事件
注意返回true会阻止超级热键*/
}
keyHotkeyObject.onKeyUp = function(vk){
/*放开按键时触发,返回true阻止放开按键事件
注意会先检测处理超级热键再触发此事件*/
}
keyHotkeyObject.onWaiting = function(hwnd,enteredKeys,waitingKeys){
if(!enteredKeys){
/*已完成热键*/
return;
}
var str = (
'已按下键:'
+ ..string.join(enteredKeys,"+")
+ ' 等待候选键:'
+ ..string.join(waitingKeys,",")
)
}
keyHotkeyObject.reg(
"~","H","I",
function(hFocusWnd,...){
..key.sendString("此回调函数返回true继续发送原来的按键")
}
)
参数@1指定包含一个或多个虚拟键名的字符串。
参数 @2 可以是一段用于输出的文本, aardio 代码或 aardio 文件,
也可以是一个回调函数,回调函数执行时间不应超过200毫秒,
该回调函数可返回布尔值指定是否取消当前按键事件,
也可以返回一个自动延时执行的函数并取消当前按键事件。
此函数注册的热键必须在最后按下预设的终止键时才会触发
使用 setEndKeys 函数可以修改预设终止键
输入文本如果以美元符号结束 $
,则输出当前终止键到目标窗体.
参数@1不区分大小写,字符间不能有空白,
如果首个控制按键使用+号分隔,则其他所有按键都要用逗号分开
参数@1指定包含一个或多个虚拟键名的字符串,
尾部可用'\0'
表示终止键。
参数 @2 可以是一段用于输出的文本,aardio 代码或 aardio 文件,
也可以是一个回调函数,回调函数执行时间不应超过200毫秒,
该回调函数可返回布尔值指定是否取消当前按键事件,
也可以返回一个自动延时执行的函数并取消当前按键事件。
参数 @1 不区分大小写,字符间不能有空白,
如果首个控制按键使用+号分隔,则其他所有按键都要用逗号分开
清除所有热键并重新创建键盘钩子
设定控制键,支持不定个数参数,支持虚拟键名或键码
默认控制键为左右CTRL,ALT,SHIFT,WIN
设定预设终止键,支持不定个数参数
支持虚拟键名或键码.