0

密钥垃圾邮件效果不佳。

这是代码:

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
}

但是当我按住zorzg在一起的时候,原来的按键z又来zg了一次或两次之间的worwa输出。

我能写什么,只有在我运行这个脚本z+g+h+j时,才能在文本文件中看到这些键?w+a+s+d

4

3 回答 3

0

但这并不像我想要的那样工作

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

然后我得到 awawawawaw 或 asasasasasasas 或 wdwdwdwdwdwdwd

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

当我使用你的答案和 holz z 时,它会发送垃圾邮件 wwwwwwwwwwwwwwwwwwwwwwwwwwwwww 如果按然后 z+g 它只会继续发送垃圾邮件 wwwwwwwwwwwwww 不是 wawawawawawawawaw

卡罗琳

于 2013-08-03T07:35:56.157 回答
0

卡罗琳,你走错路了。Autohotkey 旨在做您真正想做的事情。

正如 MCL 在他的评论中所说,您只需将密钥映射到发送功能

把它放在你的脚本中:

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

现在,当你按下z它时,它会w改为输入。

请记住,除非您将其限制为使用IfWinActive. 该脚本不会自行退出。

于 2013-08-02T19:29:02.830 回答
0

根据您的“答案”,您的目标是不标准的键盘行为。也就是说,无论是否使用带有 AHK 的重新映射键,当同时按下两个字母键只有最后按下的键会继续触发。
这是一个关于如何实现交替行为的示例:

SendMode, Input

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

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

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

于 2013-08-03T11:53:37.427 回答