4

AHK の qwerty to colemak スクリプトを使用して、別のキーボード レイアウトを使用しています。文字を別の文字にリマップします。ctrl、alt、または windows キーが押されているときに無効にするにはどうすればよいですか。このようにして、保存するための ctrl+s などのホットキーは引き続き機能するはずです!

編集: ここからスクリプトを取得しましたhttp://colemak.com/wiki/index.php?title=Download

このように見えるだけです

r::p
t::g
y::j
u::l
4

4 に答える 4

3

Suspendホットキーを無効にするために使用します。Use~は、ネイティブイベントをブロックしないようにAHKに指示します。次に、もう一度使用Suspendしてホットキーを再度有効にします。

~Ctrl::Suspend, On
~Ctrl Up::Suspend, Off

~Alt::Suspend, On
~Alt Up::Suspend, Off

~LWin::Suspend, On
~LWin Up::Suspend, Off
于 2013-01-15T21:21:19.820 に答える
2

上記のコメントで、この条件付きの無効化は不要だと思いますが、ここにいくつかのコードを示します。文字 f を使用し、メモ帳でテストしました。f を押すと Hello が返される ^f を押すと hELLO が返されるはずですが、#IF が true ではないため、システムが通常の Ctrl+f を送信するため、メモ帳の検索が開きます。!f と同じで、[ファイル] メニューが開きます。警告 #IF を機能させるには、autoHotKey_L をインストールする必要があります。

#If (NOT ((GetKeyState("Control", "P")) OR (GetKeyState("Alt", "P"))))
    f::Send, Hello ; Should execute as long as Ctrl or Alt are not pressed.
    *a::Send, QQQQ ; The * ignores all modyfiers, not executed when Alt or Ctrl is pressed.
    ^f::Send, hELLO ; should never execute due to #IF = False
    !f::Send, olleh ; should never execute due to #IF = False
#IF
于 2013-01-16T08:49:13.793 に答える
0


スクリプトのコードを含めるか、スクリプトへのリンクを提供すると役立ちます(自分で検索していましたが、見つかりませんでした)。

スクリプトでの再マッピングが正しく行われた場合、キーの物理的な位置は変更されていますが、組み合わせCtrl+Sは引き続き機能するはずです。レイアウト
http://colemak.com/wiki/images/8/80/Colemak_layout_2.png
で見たように、 s は元の s からそれほど離れていないので、覚えてみてください。



ホットキーを無効にする通常の解決策は次のとおりです。

    Suspend, On

http://www.autohotkey.com/docs/commands/Suspend.htm

スクリプトを見ていないので、うまくいくかどうかわかりません。

于 2013-01-15T20:26:45.510 に答える
0

同上。スクリプトについては不明です。autoHotKey_L #if 関数を使用して、再割り当てされたキーを #IF 内に配置することも考えられます。#IF は、押されていない修飾キーの周りに作成する必要があります。

于 2013-01-15T20:34:08.057 に答える