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


20

説明

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

私が思っているのは、標準キー以外のキーボード上の追加キーをエミュレートすることは可能ですか?たとえば、キーボードにFK1、FK2、およびFK3というラベルの付いた3つの追加キーがあることをコンピューターに思い込ませることができます。

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

どうして?

聞いてくれてうれしいです。私はArmA 3と呼ばれるゲームをよくプレイしますが、ゲームに精通している人なら、キーボードのほぼすべてのキーを使い果たすことを知っています
このゲームで仲間と通信するには、TeamSpeakを使用します。チームスピーク用のサウンドボードがあり、Altキーを押しながらクリックするのではなく、ホットキーを使用してさまざまなサウンドをアクティブにできるようにしたいのですが、使用するすべてのMODを備えたArmAには実質的に無料のキーがありません。

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

素晴らしい質問です。
私のキーボードはLogitech G910 Orion Sparkで、27個のマクロがあります。使用中にこれらの各マクロを設定して、偽のキーボードボタンを呼び出すことができると仮定しています。

これはおそらく非常に読みにくいのですが、私はベストを尽くしました。

Windows 10 Pro(x64)


1
これは興味深い難問です
...-wogsland

カスタムキーのあるキーボードを購入することをお勧めしますが、入手できます。例; amazon.co.uk/Programmable-aLLreLi-Mechanical-Keyboard-Gameboard/...
ロバート・パウンダー

1
添付した写真は、標準の米国キーボードのものではありません。あなたがこの間違いの最も基本的な部分を得たとは信じられません。標準キーボードはIBM-PC互換キーボードです。基本的には、2つのWINDOWSキーを備えたフルサイズのデスクトップキーボードです。ここでは、Apple独自のキーボードを描いています。それは標準キーボードではありません。これを修正する必要があります。標準キーボードについて質問し、非標準キーボードの図を含めたので、あなたの質問は今のところまったく意味がありません。あなたは確かに標準のキーボードについて尋ねている場合は、それらの画像を削除したほうが良いでしょう
連結

回答:


15

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

キーの再割り当て

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

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

偽造

オートホットキー使用すると、スキャンコードと異常なシンボルをスクリプトで生成できます。

このスクリプトは、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-キー/

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

パズルの最後の部分は、Logitechマクロを取得して、仮想キーを生成するAutoHotkeyスクリプトを呼び出すことです。ホットキーなしでAutoHotkeyスクリプトを作成すると、実行時にすぐに起動します。

send, {vk7B}

または

send, £

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

注:これはどのゲームでもテストしていません。有効なエントリとして受け入れるものに応じて、ゲームによって結果が異なる可能性があります。上記のVirtual Keysリンクで、人々はあなたがやりたいことをほぼ正確に行うことを議論しており、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

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

b::
send, {vk7C}

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

send, {vk7C}

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


これはまさに私が必要なもののように見えます。しかし、私はプログラムで完全に失われています。.AHKファイルを作成しました。最初の行は#p ::で、2 行目はsendで、£はうまくいくはずですよね?または、何かが完全に不足しています。可能であれば、サンプルスクリプトを提供してもらえますか?代わりにWIN-F1を押してF13として登録するたびにコンピューターに通知するスクリプトのようなもので十分です。トンのおかげで:)
ジョシュSilveous

AutoHotKeyヘルプ(プログラムフォルダーのAutoHotkey.chm)は非常に優れています。Send関数のエントリとHotKeyエントリはどちらも適切な読み取りです。また、win-F1-> F13を含めるように回答を更新します。
アデレード

KeyTweakが新しいキーを許可せず、キーの移動を許可する場合、UKレイアウトを取得し、USレイアウトに一致するようにキーを移動することにより、追加の仮想キーを1つ取得できますか?
user1937198

ただし、トムスコットが絵文字キーボードに使用したり、Linus Tech TipsのTaranがビデオエディタマクロに使用したりするF24など、ほとんどのキーボードには表示されないキーがあります。
-TRiG

1

応答が遅くなったことをおologiesびします。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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.