web-dev-qa-db-ja.com

コンピュータが本物と解釈する「偽の鍵」を作成しますか?

説明

これがキーボードの一般的なレイアウトの写真です。

標準のキー以外のキーボードの追加のキーをエミュレートすることは可能ですか?たとえば、コンピューターをだまして、キーボードにも3つの追加キーFK1、FK2、およびFK3とラベル付けされています

これらの追加の3つのキーは、Home、Insert、Page upなどの文字キーではありません
何かをするように割り当てられていない限り、基本的に彼らは何もしません。たとえば、プログラムでホットキーを使用してFK1を設定すると、登録されます。

どうして?

聞いてくれてうれしいです。私はArmAというゲームをプレイしています3ゲームをよく知っている人はそれが使い果たすことを知っていますキーボードのほぼすべてのキー
このゲームで仲間と通信するには、TeamSpeakを使用します。チームスピーク用のサウンドボードがあり、Altキーを押しながらクリックする代わりにホットキーを使用してさまざまなサウンドをアクティブ化できるようにしたいのですが、使用するすべてのModでArmAにフリーキーが事実上残っていません。

これらの「偽のキー」を作成できたとしても、実際のキーボードにない場合、ゲーム内でどのように使用しますか?

優れた質問
私のキーボードは、27個のマクロが搭載されたLogitech G910 Orion Sparkです。これらのマクロのそれぞれを、使用中に偽のキーボードボタンを呼び出すように設定できると思います。

これはおそらく読むのが非常に混乱しますが、私は最善を尽くしました。

Windows 10 Pro(x64)

20
Josh Silveous

キーボードのキーを押すと、ハードウェアが「スキャンコード」を生成し、ソフトウェアが特定のキーを押したと解釈します。

キーの再割り当て

KeyTweak を使用すると、適切なレジストリエントリを追加することにより、Windowsが各スキャンコードから解釈するキープレスを再割り当てできます。

残念ながら、追加の偽の鍵を追加することはできません。最も近いのは、一部のキーボードにあるメディア/ Webコントロールキーの再割り当てを許可することです。また、キーボードが通常使用しないキーコードを割り当てることもできません。したがって、USキーボードを使用している場合、Óまたは£を割り当てることはできません。したがって、通常のキー文字の使用に制限されますが、これは使い尽くしたと言います。

それを偽造

AutoHotkey スキャンコードと異常なシンボルをスクリプトで生成できます。

このスクリプトは、Win + pが押されるたびに£を生成します(インターネットからシンボルを取得し、スクリプトの作成に使用していたテキストエディターに貼り付けました)。

#p::
send, £

ゲームによっては、このようなスクリプトを使用して£をゲームのキーとして取得できる場合があります。しかし、ゲームが実際のキーボードスキャンコードの生成を待っている場合、これは機能しません。それはゲームがハードウェアとどのように相互作用するかに依存します。

幸い、AutoHotkeyはキーボードスキャンコードも生成できます。 Win + pが押されると、このスクリプトはスペースを生成します。これは、スキャンコード39(16進数)がスペースであるためです( スキャンコードリスト を参照)。

#p::
send, {sc39}

AutoHotkeyには、仮想キーを生成する別の方法もあります。私は違いを調査していませんが、このスクリプトはwin + pを押すと仮想キーを使用してスペースを生成します。

#p::
send, {vk20}

このリファレンスには、まだ使用していない多くの非標準キーを含む、すべての仮想キーコードがリストされています。 https://autohotkey.com/board/topic/98757-how-to-create-a- new-virtual-keys /

非標準の仮想キーをゲームに送信するスクリプトを作成してみてください。ゲームがそれを登録し、キーボード設定ページに保存できる場合、おそらくこれを機能させるでしょう。

パズルの最後のピースは、Logitechマクロが仮想キーを生成するAutoHotkeyスクリプトを呼び出すようにすることです。ホットキーなしでAutoHotkeyスクリプトを作成するので、実行するとすぐに起動します-など

send, {vk7B}

または

send, £

* .ahkファイルをAutohotkeyプログラムに関連付け、Logitechマクロに保存されたスクリプトを開きます。

注:これはどのゲームでもテストしていません。有効なエントリとして受け入れるものに応じて、ゲームによって結果が異なる可能性があります。上記の仮想キーのリンクでは、人々はあなたがやりたいことをほぼ正確に行うことについて話し合っており、F13〜F24キーの使用である程度成功しているようです。

vk7B    sc58    F12
vk7C    sc64    F13
vk7D    sc65    F14
vk7E    sc66    F15
vk7F    sc67    F16
vk80    sc68    F17
vk81    sc69    F18
vk82    sc6A    F19
vk83    sc6B    F20
vk84    sc6C    F21
vk85    sc6D    F22
vk86    sc6E    F23
vk87    sc76    F24

EDIT:コメントで要求されたとおり。 F13を作成する簡単なスクリプトは次のようになります。

b::
send, {vk7C}

このスクリプトがアクティブなときに(時計の近くのトレイで)bを押すたびに、F13が送信されます。このスクリプトはアクティブなままで、強制終了するまで「b」を押すたびに実行されます。ゲームがキーセットアップでF13を登録したら、このスクリプトを強制終了し、Logitechが呼び出すように次のようなスクリプトを作成します。

send, {vk7C}

これはアクティブなままではなく、呼び出されるたびに実行されて終了します。

15
Sir Adelaide

返信が遅れたことをお詫びします。 F12を過ぎてファンクションキーにアクセスする必要がありました。これは、現在のキーボードメーカーでは考慮されていないようですが、AutoHotkeyで十分簡単です。これを使用して、これらのキーストロークをマクロとしてマウスに追加しましたが、それ以外の場合は任意のキーを追加できません。

z::
send, {F13}
return

x::
send, {F14}
return

c::
send, {F15}
return

v::
send, {F16}
return

b::
send, {F17}
return

n::
send, {F18}
return

m::
send, {F19}
return

l::
send, {F20}
return

k::
send, {F21}
return

j::
send, {F22}
return

h::
send, {F23}
return

g::
send, {F24}
return
1
suvonnie