履歴のある時点で、Ctrl + Sを壊して、コンソールホストの出力を一時停止しました。 私たちがExtendedEditKeysのものをいじったのはその頃だったと思います。
私はもうこれについて完全な文脈を持っていません、これは私が外部に移植しているMSFT:17790922として私が持っていたもう一つのメモ-to-selfタイトルのみのバグです。
Ctrl+Sの一時停止の状態を時代を超えて再調査する必要があります。 v1はどのようにそれを行いましたか? v2はWindows10のリリースでどのように機能しましたか? どういうわけかオプションとして再導入する必要がありますか?
Ctrl + S / XOFF、ctrl +QXON。 これは、昔ながらのソフトウェアフロー制御です。 自分自身で言えば、ストリーミングログ、猫、尻尾などでかなりよく使用します。古いテレプリンター/端末からの痕跡であり、VTで引き継がれています。
ああ、そうです、あなたは間違いなくそれを再導入すべきだと思います。
NT 4では、ライン入力モードが有効になっている場合、コンソール出力は一時停止キー( VK_PAUSE
)またはCtrl-Sのいずれかを介して一時停止できます。 ターミナルに慣れている人の便宜のためにCtrl-Sが選ばれたと確信しています。 とはいえ、任意のキーを押すと出力が再開されます。 コンソールは実際にはXOFF/XONに応答する端末ではないため、Ctrl-Qである必要はありません。
Windows 2000の周辺では、「ExtendedEditKey」レジストリ設定が追加されました。 これが有効になっている場合、カスタム編集キーは「ExtendedEditkeyCustom」で定義できます。 これが文書化されたことはないと思います。 カスタムマッピングが定義されていない場合は、Ctrl-S-> VK_PAUSE
マッピングを含むデフォルトのマッピングを使用しました。 そのため、「ExtendedEditKey」が有効になっていても、Ctrl-Sはデフォルトで機能していました。
新しいコンソールでは、プロパティダイアログに「ExtendedEditKey」が表示されますが、「拡張テキスト選択キー」に再利用されるようになりました。 「ExtendedEditkeyCustom」はソース内の痕跡のCONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM
マクロを超えて実装されていないように見えるため、 IsPauseKey
はVK_PAUSE
またはCtrl-Sに対して単純にtrueを返す必要があると思います。元の動作を復元します。
関連するメモとして、ソースでは、「ExtendedEditKey」とプロパティダイアログがグローバルg_fEditKeys
の値を設定していることがわかりますが、未使用のようです。
最も参考になるコメント
NT 4では、ライン入力モードが有効になっている場合、コンソール出力は一時停止キー(
VK_PAUSE
)またはCtrl-Sのいずれかを介して一時停止できます。 ターミナルに慣れている人の便宜のためにCtrl-Sが選ばれたと確信しています。 とはいえ、任意のキーを押すと出力が再開されます。 コンソールは実際にはXOFF/XONに応答する端末ではないため、Ctrl-Qである必要はありません。Windows 2000の周辺では、「ExtendedEditKey」レジストリ設定が追加されました。 これが有効になっている場合、カスタム編集キーは「ExtendedEditkeyCustom」で定義できます。 これが文書化されたことはないと思います。 カスタムマッピングが定義されていない場合は、Ctrl-S->
VK_PAUSE
マッピングを含むデフォルトのマッピングを使用しました。 そのため、「ExtendedEditKey」が有効になっていても、Ctrl-Sはデフォルトで機能していました。新しいコンソールでは、プロパティダイアログに「ExtendedEditKey」が表示されますが、「拡張テキスト選択キー」に再利用されるようになりました。 「ExtendedEditkeyCustom」はソース内の痕跡の
CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM
マクロを超えて実装されていないように見えるため、IsPauseKey
はVK_PAUSE
またはCtrl-Sに対して単純にtrueを返す必要があると思います。元の動作を復元します。関連するメモとして、ソースでは、「ExtendedEditKey」とプロパティダイアログがグローバル
g_fEditKeys
の値を設定していることがわかりますが、未使用のようです。