オートホットキー Ctrl+Shift - Zbrush/Photoshop

オートホットキー Ctrl+Shift - Zbrush/Photoshop

私は長い間 Autohotkey を使用して、CG ソフトウェア (主に Zbrush と Photoshop) 内のキーを再マップし、左利きに優しいものにしてきました。

基本的に、Numpad キーをプログラム内で変更できないキー (Ctrl、Alt、Shift など) に再マップします。こうすることで、グラフィック タブレット ペンを左手で使用し、Numpad を使用して Ctrl、Alt などにアクセスできるようになります。これは、キーボード全体を右にオフセットするよりもはるかに便利です。

とにかく、これが私のスクリプトです:

 #IfWinActive, ahk_class ZBrush

 #MaxHotkeysPerInterval 200



 NumPad1::Alt

 Numpad2::LControl

 Right::Shift

 up::Space

 return

かなりシンプルですが、数年前に作成して以来ずっとバグがありました。基本的に、Numpad2+Right (Ctrl+Shift) を押したままにして Numpad2 を放すと、プログラムはまだ押しているかのように動作します。Numpad2 をすぐにもう一度押すと正常に戻りますが、非常に煩わしいです。問題をよりよく説明するために、次の画像をいくつか示します。

ここに画像の説明を入力してください

なぜこのようなことが起こるのかご存じですか? 私はプログラマーではないので、助けが必要なのは確かです。

答え1

Numpad2 の前に Right を離すと、問題は発生しないようです。Right (Shift) を押すと Numpad2 (Ctrl) が離されなくなるかのようです...

発生している問題は、テンキーが によって変更されたために発生します⇧Shift。 を押すことはキーを⇧Shift切り替えることに似ていますNumLockが、効果はより複雑でわかりにくいものです。

たとえば、 を押すとNumpad-4次の結果が生成されます。

          │ Num On │ Num Off
──────────┼────────┼───────────
Shift Off │   4    │    ←
──────────┼────────┼───────────
Shift On  │   ←    │ Shift + ←

テンキーのキーと組み合わせて再マッピングしているため、AutoHotkeyを複雑にし、予期しない結果で混乱を招く相互作用が発生します(これはおそらく⇧Shift論理的に正しいただし、予期せぬ望ましくない結果であることは確かです。

セカンダリキーをNumpad-2他のものに変更してみてください。ないによって変更されます⇧Shift(例: ) K。予期しない結果が得られなくなることがわかります。

この動作はソフトウェアではなくキーボード コントローラーで発生するため、残念ながら、修飾子として使用する必要がある場合は⇧Shift、このような複雑な再マッピングに数字パッド キーを使用することはできません。

⇧Shift1 つのオプションは、編集ブロックまたは(数学演算子、Numpad-5およびNumpad-Enter)によって変更されない数字パッド キーを使用することです。

もう 1 つのオプションは、より複雑なスクリプトを記述して、より低いレベルでキーをチェックするキーボード フックを作成し、キーが⇧Shift押されているかどうかを確認し、必要に応じて補正できるようにすることです。


(以前、Unicode 入力プログラムを書いたときに、まさにこの問題に遭遇しました。特定の文字のキーシフトをサポートしようとしましたが、変更によって状況がおかしくなりました。最終的には後者の提案に頼って複雑なスクリプトを作成しましたが、イライラしたり、目が回ったりして、結局はとにかく制限されてしまいました。)

答え2

すごい!素晴らしい回答です!迅速かつ的確です。本当にありがとうございます。Shift キーによってこれらのキーが変更され、この厄介な動作が発生するとは知りませんでした。問題は、この Numpad2 の再マップに非常に慣れているため、何週間も精神運動の再適応を経ずには変更できないということです ^^

NumpadDown を Ctrl に再マッピングするだけで、この問題を回避することができました ^^ 今では驚くほどうまく機能しています!

NumPad1::Alt

Numpad2::Ctrl

NumpadDown::Ctrl

Right::Shift

up::Space

    return

問題の原因を指摘していただき、本当にありがとうございます。これは何年も私を悩ませていました。

関連情報