Irgendwann in der Geschichte haben wir Strg + S unterbrochen, um die Ausgabe im Konsolenhost anzuhalten. Ich denke, es war ungefähr zu der Zeit, als wir uns mit dem ExtendedEditKeys-Zeug beschäftigt haben.
Ich habe nicht mehr den vollständigen Kontext dazu, dies ist nur ein weiterer Bug, den ich als MSFT: 17790922 hatte und den ich nach außen portiere.
Wir müssen den Zustand der Strg+S-Pause im Laufe der Jahrhunderte erneut untersuchen. Wie hat v1 das gemacht? Wie hat es v2 gegenüber den Versionen von Windows 10 geschafft? Müssen wir es irgendwie wieder als Option einführen?
Strg+S / XOFF , Strg+Q XON. Es ist nur eine alte Software-Flusskontrolle. Wenn ich für mich selbst spreche, würde ich es ziemlich oft mit Streaming-Protokollen, Cat, Tail usw. verwenden. Ein Überbleibsel von alten Fernschreibern / Terminals und in VT weitergeführt.
Oh, und ja, ich denke, Sie sollten es auf jeden Fall wieder einführen.
In NT 4 konnte die Konsolenausgabe bei aktiviertem Line-Input-Modus entweder über die Pause-Taste ( VK_PAUSE
) oder Strg-S ausgesetzt werden. Ich bin mir sicher, dass Ctrl-S für die Bequemlichkeit von Leuten gewählt wurde, die an Terminals gewöhnt sind. Das Drücken einer beliebigen Taste setzt die Ausgabe jedoch fort; es muss nicht Strg-Q sein, da die Konsole eigentlich kein Terminal ist, das auf XOFF/XON reagiert.
Um Windows 2000 herum wurde die Registrierungseinstellung "ExtendedEditKey" hinzugefügt. Wenn dies aktiviert war, konnten in "ExtendedEditkeyCustom" benutzerdefinierte Bearbeitungstasten definiert werden. Ich glaube nicht, dass dies jemals dokumentiert wurde. Wenn keine benutzerdefinierte Zuordnung definiert wurde, wurde eine Standardzuordnung verwendet, die die Zuordnung Strg-S -> VK_PAUSE
enthielt. Daher funktionierte Strg-S immer noch standardmäßig, auch wenn "ExtendedEditKey" aktiviert war.
Die neue Konsole stellt "ExtendedEditKey" im Eigenschaftendialog zur Verfügung, aber es ist jetzt für "erweiterte Textauswahltasten" umfunktioniert. Da "ExtendedEditkeyCustom" nicht mehr über ein verkümmertes CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM
-Makro in der Quelle hinaus implementiert zu sein scheint, sollte IsPauseKey
einfach true für VK_PAUSE
oder Strg-S zurückgeben, was der Fall sein wird Wiederherstellen des ursprünglichen Verhaltens.
In einem verwandten Hinweis sehe ich in der Quelle, dass "ExtendedEditKey" und der Eigenschaftendialog den Wert von global g_fEditKeys
setzen, aber es scheint unbenutzt zu sein.
Hilfreichster Kommentar
In NT 4 konnte die Konsolenausgabe bei aktiviertem Line-Input-Modus entweder über die Pause-Taste (
VK_PAUSE
) oder Strg-S ausgesetzt werden. Ich bin mir sicher, dass Ctrl-S für die Bequemlichkeit von Leuten gewählt wurde, die an Terminals gewöhnt sind. Das Drücken einer beliebigen Taste setzt die Ausgabe jedoch fort; es muss nicht Strg-Q sein, da die Konsole eigentlich kein Terminal ist, das auf XOFF/XON reagiert.Um Windows 2000 herum wurde die Registrierungseinstellung "ExtendedEditKey" hinzugefügt. Wenn dies aktiviert war, konnten in "ExtendedEditkeyCustom" benutzerdefinierte Bearbeitungstasten definiert werden. Ich glaube nicht, dass dies jemals dokumentiert wurde. Wenn keine benutzerdefinierte Zuordnung definiert wurde, wurde eine Standardzuordnung verwendet, die die Zuordnung Strg-S ->
VK_PAUSE
enthielt. Daher funktionierte Strg-S immer noch standardmäßig, auch wenn "ExtendedEditKey" aktiviert war.Die neue Konsole stellt "ExtendedEditKey" im Eigenschaftendialog zur Verfügung, aber es ist jetzt für "erweiterte Textauswahltasten" umfunktioniert. Da "ExtendedEditkeyCustom" nicht mehr über ein verkümmertes
CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM
-Makro in der Quelle hinaus implementiert zu sein scheint, sollteIsPauseKey
einfach true fürVK_PAUSE
oder Strg-S zurückgeben, was der Fall sein wird Wiederherstellen des ursprünglichen Verhaltens.In einem verwandten Hinweis sehe ich in der Quelle, dass "ExtendedEditKey" und der Eigenschaftendialog den Wert von global
g_fEditKeys
setzen, aber es scheint unbenutzt zu sein.