89

最近、ちょっとした実験として、Dvorak キーボード レイアウトに切り替えました。移行の中で最も難しい部分の 1 つは、ホットキーの処理です。ほとんどのホット キーは QWERTY を念頭に置いて設計されており、さらに悪いことに、ホット キーは非常に筋肉の記憶に縛られているようです。

Ctrlすべてのホットキーを再学習するのではなく、 、Alt、またはWinキーが他のキーと一緒に押されたときに Dvorak レイアウトを QWERTY に戻すオートホットキー スクリプトを作成しました。Visual Studio '08 を除いて、私が試したすべての場所で美しく動作します。autohotkey がキーストロークを変換する前に、キーストロークがキャッチされているようです。

なぜこれが起こっているのですか?どうすれば修正できますか?

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

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

更新:スクリプトは、ahk、vs08、および coderush が新たにインストールされた Win7 で正常に動作します。私が問題を抱えているマシンは、vista を実行しています。さらに診断する方法について何か考えはありますか?

更新 2:スクリプトは、Vista および 2010 ベータ 2 で正常に動作します。vs 08 + vista だけで動作するようです。今夜、vs08 を新規インストールしてみます。

4

4 に答える 4

186

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

次のいずれかで問題が解決しました。

  • 現在のユーザーとしてvsとahkの両方を実行している
  • スクリプトをコンパイルし、vsとコンパイルされたアプリの両方を管理者として実行する
于 2009-12-15T04:58:48.140 に答える
51

OP自身が見つけた解決策にいくつかのポイントを追加したいだけです。

1) 問題は、AHK と VS が異なる権限で実行されていることではありません。非管理者モードで実行されているスクリプトによって作成されたホットキーは、管理者モードで実行されているアプリケーションでは機能しません。逆に。

2)必ずしもスクリプトをコンパイルする必要はありません.autohotkey.exeを管理モードで実行するように設定するか(私はそうしています)、または特定のスクリプトへのショートカットを作成して、常に管理モードで実行するように設定します. (ちなみに、コンパイルされたバージョンの AHK スクリプトを実行してもパフォーマンスが向上することはありません。これは、コードがまだ解釈されているためです。作成された実行可能ファイルにインタープリターが埋め込まれているだけです)

于 2011-12-10T16:07:11.227 に答える
1

どうやらこれには回避策があるようです。

ドキュメントProgram.htm#Installer_uiAccessから。
Lexikos によるフォーラム スレッド

抜粋:

EnableUIAccess

AutoHotkey.exe を変更して、UAC が有効な場合でもスクリプトが次のことを実行できるようにします。

管理者としてスクリプトを実行せずに、管理プログラムのウィンドウと対話します。SendPlay を使用します。制限があります。このスクリプトを使用する前に、投稿をお読みください。

ahk ファイルへのダウンロード リンクはフォーラムで壊れていますが、Github で見つけました: EnableUIAccess.ahk

于 2018-05-01T18:48:59.990 に答える