使用输入捕获发送

时间:2014-10-23 18:44:52

标签: autohotkey

我有一个脚本,用于插入特殊字符并实现死键。使用SendEvent插入特殊字符。当激活死锁时,脚本将运行Input, key, L1并在表中查找结果以查找组合字符。

这适用于真正的按键,但是如果我触发死键然后使用SendEvent插入特殊字符,则Input调用不会注意到它。将逐字插入特殊字符,下一个真正的按键将转到Input调用。

如何更改我的脚本,以便Input捕获脚本插入的特殊字符?

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

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,但我不认为那些会影响Input命令的行为。

0 个答案:

没有答案