Autohotkey 捕获并发送输入

Autohotkey 捕获并发送输入,autohotkey,Autohotkey,我有一个脚本,用于插入特殊字符和实现死键。特殊字符随SendEvent一起插入。激活死键时,脚本运行Input、key、L1并在表中查找结果以查找合成字符 这对于真正的按键操作很好,但是如果我触发一个死键,然后使用SendEvent插入一个特殊字符,输入调用不会注意到它。特殊字符被逐字插入,下一次真正的按键将转到输入调用 如何更改脚本,以便通过输入捕获脚本插入的特殊字符 我正在运行一个简单的脚本来演示这个问题: SpecialCharacter(char) { SendEvent %ch

我有一个脚本,用于插入特殊字符和实现死键。特殊字符随SendEvent一起插入。激活死键时,脚本运行Input、key、L1并在表中查找结果以查找合成字符

这对于真正的按键操作很好,但是如果我触发一个死键,然后使用SendEvent插入一个特殊字符,输入调用不会注意到它。特殊字符被逐字插入,下一次真正的按键将转到输入调用

如何更改脚本,以便通过输入捕获脚本插入的特殊字符

我正在运行一个简单的脚本来演示这个问题:

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,但我认为它们不会影响输入命令的行为。

显示一些代码。这会有很大帮助。如果你想使用死键,你可能必须切换到美国键盘而不是美国国际键盘。这就是我用死钥匙工作时所做的。请看:我已经编辑了这个问题。示例代码就是我目前实际运行的代码。