1. ホーム
  2. visual-studio

[解決済み] なぜVisual Studioはautohotkeyより先にキーイベントをキャッチするのですか?

2023-05-15 22:25:13

質問

私は最近、ちょっとした実験として Dvorak キーボード レイアウトに切り替えました。移行の最も困難な部分の 1 つは、ホットキーの扱いです。ほとんどのホットキーは QWERTY を念頭に置いて設計されており、さらに悪いことに、ホットキーは非常にマッスル メモリに縛られているようです。

すべてのホットキーを再学習するのではなく、Dvorak レイアウトを QWERTY に戻す自動ホットキー スクリプトを書きました。 Ctrl , Alt または Win キーが他のキーと一緒に押された場合。Visual Studio '08を除いて、私が試したところではどこでも見事に動作しました。autohotkey が翻訳する前にキーストロークが捕捉されているようです。

なぜこのようなことが起こるのでしょうか、また、どのようにこれを修正すればよいのでしょうか。

以下は、私のスクリプトの抜粋です(最初から)。

; control + letter
^;::^z
^q::^x
^j::^c
^k::^v

更新しました。 スクリプトはWin7で、ahk、vs08、coderushが新しくインストールされた状態で問題なく動作します。私が困っているマシンは、Vista を実行しています。さらに診断する方法について何か考えがありますか?

アップデート 2。 スクリプトはVistaと2010 beta 2で問題なく動作します。vs08 + vista だけで何かあるようです。今夜、vs08の新規インストールを試してみるつもりです。

どのように解決するのですか?

嗚呼、解りました。ahk とターゲット アプリが同じ特権 (またはユーザー) で実行されていない場合、ahk はキーボード イベントを適切に傍受/シミュレートしません。私の場合、ビジュアル スタジオは管理者 (昇格) 権限で実行され、ahk スクリプトは現在ログオンしているユーザーとして実行されました。

次のいずれかの方法で問題を解決しました。

  • 現在のユーザーとして vs と ahk の両方を実行する
  • スクリプトをコンパイルし、vs とコンパイルしたアプリの両方を管理者として実行する