私は非常に満足しているキーボード(Logitech Wave、下の写真)を手に入れました。残念ながら、製造元はFNキーの右クリックのボタンを変更しました。
FNキーを他の何かに再マップするプログラムはありますか?
私は非常に満足しているキーボード(Logitech Wave、下の写真)を手に入れました。残念ながら、製造元はFNキーの右クリックのボタンを変更しました。
FNキーを他の何かに再マップするプログラムはありますか?
回答:
Fnキーを再マッピングまたは無効にできますか?
AutoHotKeyなどのプログラムを使用してFnの組み合わせを再マッピングするか、Windowsのキーボードスキャンコードを掘り下げると、攻撃的なキーの組み合わせ(Fn +キー)を再マッピングできる場合があります。(この回答のさらに下を参照)。
Fnキーは通常ハードウェアレベルにあるため、このレベルで編集または無効にすることはできません。
[Fn]これは通常、別個のコードを生成しないハードウェアキーです。
出典:UIイベントKeyboardEventコード値-2017年W3C勧告候補
同様のキーで、Microsoft MVPのジェイソンツァンFロックは次のように述べています。
Fロックキーは、キーボードのハードウェアスイッチです。その状態をプログラムで制御することはできません。デフォルトの状態は「オフ」です。その結果、キーボードがリセットされるか、電源が切れると、F Lockキーは常に「オフ」状態になります。2004年9月以降にリリースされたMicrosoftキーボードでは、キーボードは再起動してもFロックステータスを保持します。
Fnは、修飾キーCtrl、Shift、AltGrなどの通常のキーボードキーではありません。標準の修飾キーの場合、キーボード内のマイクロコントローラーは修飾コード自体のスキャンコードを送信します。これはオペレーティングシステムによって解釈され、他の同時キー押下と組み合わされます。Fnキーは、キーボード上の他のキーが押されたときにオペレーティングシステムに変更されたスキャンコードを表示させるという点で、メタ修飾子キーの形式です。これにより、キーボードはフルサイズのキーボードを直接エミュレートできるため、オペレーティングシステムはフルサイズのキーボード用に設計された標準のキーマップを使用できます。ただし、オペレーティングシステムにはFnキーの概念がないため、他のすべての標準キーボードキーとは異なり、通常、ソフトウェアでキーを再マップすることはできません。
ソース-A)Bに基づくhighrezフォーラムの投稿 B)ウィキペディアの投稿
Fnキーをマップすることが不可能に見えることが多いのはなぜですか?
実際、キーボードは次のように機能します(値は単なる例であり、動作は簡略化されています)。
- 通常のキー:バイト0x00 +キースキャンコードバイトを送信
- 修飾子(alt / option、control、windows / command、およびfn):修飾子scancode byte + key scan code byteを送信します
- 特別なキー(G15キーなど):標準(ボリュームキーなど)またはカスタム(メーカーによって異なる)スキャンコードを送信します
ほとんどの「fn」キーボード(アップルを含む)は、データを送信する前にキーの組み合わせを処理するだけなので、fnキーを押して放しても何も起こりません。例えば:
- F1キーを押す->スキャンコード0x1A->オペレーティングシステムがF1キーとして認識する
- FNとF1を押す->スキャンコード0x9A->オペレーティングシステムがVolumeUpキーとして認識する
- FNを押す->キーボードマイクロコントローラーがデータを送信する前に別のキーを待つ
AutoHotKeyのポスターの1つは修辞的な質問から始まります
I don't get any response when I press the Fn key.
fnキーは信号を送信することを想定していません。別のキーを押すと送信される信号を変更します...
したがって、Fnキーに関する本当の問題は、OSに存在しないため、OSで実際に「再マップ」できないことです。できることは、キーをリマップしてfnが変更された単一の信号を送信することにより、キーの二次機能をリマップすることだけです...
したがって、基本的に、fnキーの自動化は実行できません。ただし、最終結果の自動化は問題ありません!...
そのため、残念ながら、OSレベルでは自動化は実行できません。ハードウェア/ドライバーのレベルまで下げる必要があり、AutoHotKeyでは実行できません。
一部の人々は、オートホットキーを介してFn機能を再マッピングすることに成功しており、Fnキーを見ることに成功している人はほとんどいません。
...次の手順を使用して、ホットキーにすることもできます。
- キーボードフックを使用しているスクリプトが少なくとも1つ実行されていることを確認します。メインウィンドウを開いて、メニューバーから[表示]-> [キーの履歴]を選択すると、スクリプトにキーボードフックがあるかどうかを確認できます。
- そのスクリプトのトレイアイコンをダブルクリックして、メインウィンドウを開きます。
- キーボードの「ミステリーキー」のいずれかを押します。
- メニュー項目「表示->キー履歴」を選択します。ページの一番下までスクロールします。
- 一番下のどこかに、キーのキーダウンイベントとキーアップイベントがあります。
- 注:一部のキーはイベントを生成しないため、ここでは表示されません。この場合、
キーボードドライバまたはハードウェアがAutoHotkeyにアクセスするには低すぎるレベルで処理するため、その特定のキーを直接ホットキーにすることはできません。可能な解決策については
、以下を参照してください。キーが検出可能な場合
は、リストの2列目にある3桁の16進値(たとえば159)をメモします。するには
ホットキーとしてこのキーを定義し、この例では、次のとおりです。
SC159:: ; Replace 159 with your key's value.
MsgBox, %A_ThisHotkey% was pressed.
return
逆方向:他のキーを再マッピングして「ミステリーキー」にするには、次の例を使用します。
; Replace 159 with the value discovered above. Replace FF (if needed) with the
; key's virtual key, which can be discovered in the first column of the Key History screen.
#c::Send {vkFFsc159} ; See Send {vkXXscYYY} for more details.
ソース:autohotkey.com/docs/KeyList.htm
AutoHotKeyを使用してDLL経由で再マッピングする
AutoHotkeyは、Windows用のオープンソースマクロ作成ユーティリティであり、その多くの機能の1つはホットキーの作成です。AHKフォーラムのメンバーの1人であるMichaは、ヒューマンインターフェースデバイスのAHKにサポートを追加するDLLファイルを作成しました。このDLLファイルを使用すると、ほぼすべてのHIDのキーを読み取ることができます。キーボード、マウス、リモコンなど
古いプロセスでDLL Process Creatorが言うことは次のとおりです。
まず、キーボードと特にFnキーの動作に関するいくつかの情報。各キーには固有のコードであるスキャンコードがあり、接続されているコンピューターは、特定のキーが押されたかどうか、いつ離されたかを確認できます。Fnキーの動作は少し異なります。Fnキーを押したままにすると、キーボード上の他のキー(の一部)のスキャンコードが変更されるため、1つのキーで異なるスキャンコードをコンピューターに送り、それぞれが異なる機能に接続できます。そのため、Fnキーは、ノートブック、小型キーボード、またはマルチメディアキーの多いキーボードでよく使用されます。これにより、比較的少量のキーに多くの機能を追加できます。
問題は、Fnキーには通常、独自のスキャンコードがないことです。キーボードと接続先のコンピューターによっては、Fnキーが他のキーのスキャンコードを変更しないため、機能しない可能性があります。また、独自のスキャンコードを送信しないため、コンピューターがFnキーがあることを知る方法はありません。他のキーと組み合わせて押された場合の対処は言うまでもありません。再マッピングツールも、スキャンコードの使用に基づいているため、役に立ちません。
指示に基づいてFnキー値を記録する例:
実行したら、Fnキーまたは別の特別なキーを押して、対応する値を書き留めます。
; Filter bit 5 (Fn key) Transform, FnValue, BitAnd, 16, KeyStatus
Fn関数を再マッピングするためのサンプルコード
;
; Fn + Backspace = Delete
;
$Backspace::hotkeyBS()
hotkeyBS() {
global fnPressed
if (fnPressed = 1) {
Send {Delete}
} else {
Send {Backspace}
}
}
Return
ソース:ここで完全な指示に従ってください
SharpKeysは、Windowsが1つのキーを他のキーに再マッピングできるようにするレジストリキーを管理するユーティリティです。アプリケーションには、一般的なキーボードキーのリストと、ほとんどのキーボードキーを自動的に認識するタイプキー機能が含まれています。当初は.NET v2を使用してC#で開発されましたが、.NET 4.0クライアントプロファイルをサポートするように更新されました。
また、KeyTweak
KeyTweakは、ユーザーがキーボード入力信号を再定義できるシンプルなユーティリティです。この機能は、Windows 2000で最初に文書化されたレジストリ値によって可能になりましたが、Windows NT 4.0にも存在します。XP、Vista、およびWindows 7に含まれています。このセクションでは、KeyTweakの機能のいくつかと、KeyTweakを使用する理由を示します。
Microsoftのドキュメントとリンク
BIOSを介したアクションキーモードの機能
この設定は、ラップトップキーボードの上部ボタンのデフォルトの動作を変更します。どういう意味ですか?
[アクションキーモード]が[有効]に設定されている場合、キーボードの一番上の行にアイコンとして表示される追加機能を使用するために、Fnキーを押す必要はありません。上部のボタンがF1..F12のように機能するように、クランプする必要があります。
多くの場合デフォルトである「アクションキーモード」が「無効」の位置にある場合、上部のボタンは標準のF1 ... F12として機能し、アイコンとして表示される高度な機能を使用するには、さらにFnをクランプします。
Fn
Ubutnuでのキーの再マッピング