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とorzgの間で常に 1 回または 2 回来ます。wwa

このスクリプトを実行した場合にのみキーz+g+h+jがテキスト ファイルに表示されないようにするには、どうすればよいでしょうか?w+a+s+d

4

3 に答える 3

0

キャロライン、あなたは間違った方法で進んでいます。Autohotkey は、本当にやりたいことだけを行うように設計されています。

MCL がコメントで述べているように、キーを send 関数にマップするだけで済みます

これをスクリプトに入れます:

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

今、あなたが押すzと、代わりにタイプwします。

を使用してメモ帳に制限しない限り、これはコンピューター全体でグローバルであることに注意してIfWinActiveください。スクリプトは単独では終了しません。

于 2013-08-02T19:29:02.830 に答える
0

あなたの「答え」によると、標準ではないキーボードの動作をターゲットにしています。つまり、AHK でリマップされたキーを使用するかどうかに関係なく、2 つの文字キーを同時に押すと、最後に押されたキーのみが発火し続けます。
代わりに、交互の動作を実現する方法の例を次に示します。

SendMode, Input

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

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

&修飾子を使用してすべてのカスタムの組み合わせを明示的に定義する必要があります。これにより、プレフィックス キーが作成されます。これには利点と小さな欠点があります。利点は、コンビネーションを押し続けることができるようになり、2 つのキーを交互に発射し続けることです。ループなどは必要ありません。欠点: プレフィックス ホットキーの元の動作を再構築する必要があります。この例では、小文字または大文字を送信しています。

于 2013-08-03T11:53:37.427 に答える
0

しかし、これは私が望むように機能しません

g+z を同時に押すか、z+j を同時に押すか、g+h を同時に押すか、h+j を同時に押すことができるようにしたい

そして、私はawawawawまたはasasasasasasasまたはwdwdwdwdwdwdwdを取得します

2つのボタンを同時に押すと、出力が1文字に切り替わります

そして、私があなたの答えとholz zを使用すると、スパムが送信されますwwwwwwwwwwwwwwwwwwwwwwwwwwwwwそして、z + gを押した場合、それは連続してスパム送信されますwwwwwwwwwwwwww wawawawawawawawwではありません

より

キャロライン

于 2013-08-03T07:35:56.157 に答える