これは、修飾子ではない操作が主要なイベントに対して実行されるためです。

これは、修飾子ではない操作が主要なイベントに対して実行されるためです。

長押ししますCtrl。その後、Alt長押しします。最後にを押しますDelete。 Ubuntuシステム(おそらくDebianベースのシステム)を使用している場合は、Ctrl++ショートカットAltを実行したため、セッションがロックされている可能性がありますDelete

さて、Delete待ってください。その後、Ctrl長押しします。次にを押しますAlt。セッションショートカットロック発動しません

なぜですか?この設定はどこにハードコードされていますか?

私の推測:ショートカットは実際には「拡張キーボードキー」を介して機能しているようです。選択したキーで「新しいキーボード」を選択またはCtrl開きます。ただし、最初にこの仮想拡張キーボードではなく実際のキーボードに属することを選択した場合は、そうではありません。そうですか?AltDeleteDelete

ベストアンサー1

これは、修飾子ではない操作が主要なイベントに対して実行されるためです。

これは実際にはキーボードハードウェアとほとんど関係がありません。 USBおよびPS / 2キーボードはこれに関して同じように機能します。持つ何もないいわゆる「修飾子キー」を特別にするハードウェア。 どの1 つの例外を除いて、キーは修飾キーであっても、そうでなくてもよい。

修飾キーが何であるかを決定するものは何ですか?キーボード図オペレーティングシステムで使用されるソフトウェア。ハードウェアは有効なイベント(実際には現在押されているキーのビットマップであるUSB HID入力レポートプロトコルの詳細をマスクして短く保つために部分的に内部形式でエンコードされています)キーダウンイベントとキーダウンイベントのみを送信します。 。

たとえば、FreeBSDキーマップに次の行を見つけることができます。

#代替
#cntrl alt alt cntrl ロックチェック
# コードデフォルト Shift cntrl Shift alt Shift cntrl Shift ステータス
#------------------------------------------------ - -----------------
029制御制御制御制御制御制御制御制御O
問題042
問題054
永久
問題083 '.' '.'ガイドガイドN

029、042、054、056はキーボードコード(USB HID使用番号とPS / 2スキャンコード番号を基準に汎用システムで標準化されたコード)ですがlctrl、、 lshiftrshiftlalt 行動これらのキーをマップの修飾キーとして定義します。これを別のジョブとして定義し、いくつかのデフォルトのFreeBSDマップと同様に、そのジョブを別の場所に移動します。全く違うキーは修飾子です。

(このルールの例外はFnkeyです。これはハードウェアに実装されている修飾子です)。完全ハードウェアではソフトウェアは表示できません。別の言葉。有線経由でイベントは生成されません。実際には別のハードウェア修飾子があります。これは鍵ではありません。 NumLock LED の状態です。 )

これ行動、このような修飾子操作の場合に変更されます。現在の修飾子の状態は、(簡単に言えば)現在「オープン」修飾子を記録するオペレーティングシステムに記録されているフラグのセットです。キーマップの列ヘッダーからわかるように、現在の修飾子状態(「shift」、「altgr」、「control」、および「alt」状態の「on」フラグの側面)がどのような影響を与えるかがわかります。行動追加のキーがマッピングされます。

キーコード083(つまり、数値キーパッドのキーコード)がある行で、. del現在の修飾子ステータスが少なくとも「alt cntrl」の場合にのみマッピングされた操作が実行されることがわかりますboot

キーボードドライバの開発修正作業鍵を受け取った後~によるとまたは鍵解放するイベント。その他のタスクは、主なイベントにのみ適用されます。~によるとまたは自動反復イベント。bootたとえば、この操作の場合です。キー083でキー押下または自動繰り返しイベントが発生した場合のみそしてbootこれが発生したかどうかにかかわらず、現在の修飾子の状態はすでに "alt cntrl" / "alt cntrl Shift"です。

まず、オペレーティングシステムの現在の修飾子状態をその状態にインポートするには、およびlalt/lctrl操作rctrlが次のことを行う必要があります。それが起こった、通過最初そのキーにマップされたキーを押します。 (FreeBSDシステムは修飾子も受け入れます。ロックする一般的な修飾子システムに加えて変化しかし、これを使用できる主キーマップは2つだけです。 ISOキーボード標準では修飾子も受け入れます。クラスプしかし、FreeBSDはこのメカニズムを提供しません。 )

私が言ったように、FreeBSDはその例です。ただし、MS / PC-DOS(現在の修飾子の状態はメモリでよく知られているバイト)からWindows NT(キーマップにコードとデータカーネルモードDLLを含む)まで、PS / 2またはUSB HIDデバイスを備えたほとんどのオペレーティングシステム)おおよそ次のように動作します。

追加読書

おすすめ記事