Autohotkey 捕获并发送输入
我有一个脚本,用于插入特殊字符和实现死键。特殊字符随SendEvent一起插入。激活死键时,脚本运行Input、key、L1并在表中查找结果以查找合成字符 这对于真正的按键操作很好,但是如果我触发一个死键,然后使用SendEvent插入一个特殊字符,输入调用不会注意到它。特殊字符被逐字插入,下一次真正的按键将转到输入调用 如何更改脚本,以便通过输入捕获脚本插入的特殊字符 我正在运行一个简单的脚本来演示这个问题:Autohotkey 捕获并发送输入,autohotkey,Autohotkey,我有一个脚本,用于插入特殊字符和实现死键。特殊字符随SendEvent一起插入。激活死键时,脚本运行Input、key、L1并在表中查找结果以查找合成字符 这对于真正的按键操作很好,但是如果我触发一个死键,然后使用SendEvent插入一个特殊字符,输入调用不会注意到它。特殊字符被逐字插入,下一次真正的按键将转到输入调用 如何更改脚本,以便通过输入捕获脚本插入的特殊字符 我正在运行一个简单的脚本来演示这个问题: SpecialCharacter(char) { SendEvent %ch
SpecialCharacter(char) {
SendEvent %char%
}
DeadKey(combining) {
Input, key, L1
SendEvent %key%
SendEvent %combining%
}
^q::SpecialCharacter("a")
^w::DeadKey("b")
^ESC::Reload
实际应用将更加复杂
实际产量:
Ctrl-q:a
Ctrl-w,x:xb
Ctrl-w、Ctrl-q:无输出
Ctrl-w,Ctrl-q,x:xb
期望输出:
Ctrl-w,Ctrl-q:ab
Ctrl-w,Ctrl-q,x:abx
我尝试过摆弄SendLevel/InputLevel,但我认为它们不会影响输入命令的行为。显示一些代码。这会有很大帮助。如果你想使用死键,你可能必须切换到美国键盘而不是美国国际键盘。这就是我用死钥匙工作时所做的。请看:我已经编辑了这个问题。示例代码就是我目前实际运行的代码。