AutoHotKey - 密钥垃圾邮件不能像我想要的那样工作

时间:2013-08-02 07:56:12

标签: autohotkey

关键垃圾邮件效果不佳。

以下是代码:

Loop
{
If GetKeyState("z", "P")
  send w
If GetKeyState("g", "P")
  send a
If GetKeyState("j", "P")
  send d
If GetKeyState("h", "P")
  send s
}

但是当我将zzg放在一起时,原始密钥zzg会在wwa之间一次或两次出现{1}}输出。

如果我运行此脚本,我可以写什么z+g+h+j永远不会在文本文件中看到w+a+s+d

3 个答案:

答案 0 :(得分:0)

凯洛琳,你是以错误的方式去做的。 Autohotkey旨在完成真正想要做的事情。

正如MCL在评论中所说,你只需要将你的键映射到发送功能

将它放在你的脚本中:

z::send w
g::send a
j::send d
h::send s

现在,当您按z时,它会输入w

请注意,除非您使用IfWinActive将其限制为记事本,否则这是全局的。该脚本不会自行退出。

答案 1 :(得分:0)

但这项工作就像我想要的那样

我想我可以按g + z同时或z + j同时或g + h同时或h + j同时

然后我得到awawawawaw或asasasasasasas或wdwdwdwdwdwdwd

当我同时按下2个按钮时,它会切换输出1个字符

当我使用你的答案和holz z它垃圾邮件wwwwwwwwwwwwwwwwwwwwwwwwwwwww 如果按,那么z + g它只会继续游戏wwwwwwwwwwwwww not wawawawawawawawaw

thans

卡洛琳

答案 2 :(得分:0)

根据您的“回答”,您的目标是不符合标准的键盘行为。也就是说,使用带有AHK的重新映射键,当同时按下两个字母键 完全时,最后按下的键将继续触发。
以下是关于如何实现交替行为的示例:

SendMode, Input

g & z::
z & g::
    Send, aw
return

g::Send, a
+g::Send, A
z::Send, w
+z::Send, W

您必须使用& 修饰符明确定义每个自定义组合,这使它们成为prefix keys。这有一个好处和一个小的缺点:好处是,你现在可以继续按你的组合,它将继续以交替的方式发射两个键;不需要循环等。缺点:您需要重建前缀热键的原始行为。在我们的示例中,这是发送小写或大写字母。