Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows 11/APPTYPE CONSOLE in "cmd.exe" öffnen (https://www.delphipraxis.net/212677-windows-11-apptype-console-cmd-exe-oeffnen.html)

Ralf Kaiser 14. Mär 2023 14:28


Windows 11/APPTYPE CONSOLE in "cmd.exe" öffnen
 
Hallo zusammen,

Wenn man in Delphi 11 eine Konsolen-Anwendung öffnet dann wird diese in der Windows-11-Standard Einstellung im Terminal geöffnet.

Bei einer älteren Konsolenanwendung haben wir Probleme wenn sie nicht in der normalen Eingabe-Aufforderung als Konsolen-Host geöffnet wird (die Anwendung hat Probleme unter anderem bei der farblichen Gestaltung der Konsolenausgabe im Terminal mit Escape-Sequenzen).

Man kann in den Standard-Einstellungen für das Terminal auswählen, dass die normale Eingabe-Aufforderung als Standard Konsolen-Host benutzt wird. Besser wäre es natürlich wenn das Programm selbst steuern könnte, welcher Konsolen-Host benutzt wird. Leider habe ich bisher keine Möglichkeit dazu gefunden.

Kennt jemand eine Möglichkeit, wie man vom Code aus den zu verwendenden Konsolen-Host auswählen kann?

Ciao,
Ralf

himitsu 14. Mär 2023 15:44

AW: Windows 11/APPTYPE CONSOLE in "cmd.exe" öffnen
 
Terminal ist (zumindestens in aktuellen Win11) nun vorinstalliert
und die cmd.exe ist ebenfalls darauf umgebogen.

Das ist halt so: Terminal ist die neue Standard-Console.



Schau mal, ob du unter HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\cmd.exe einen Eintrag findest.

Oder ob du in den installierten Programmen (AppStore) den Terminal zum Deinstallieren entdeckst.



Neee, ich hab ja noch nichtmals rausgefunden, wie man den Conhost bei sich selber einbinden kann.
Und den Quellcode des neuen Terminal empfinde ich auch nicht grade als verständlich.

jaenicke 14. Mär 2023 17:09

AW: Windows 11/APPTYPE CONSOLE in "cmd.exe" öffnen
 
Zitat:

Zitat von Ralf Kaiser (Beitrag 1519840)
Bei einer älteren Konsolenanwendung haben wir Probleme wenn sie nicht in der normalen Eingabe-Aufforderung als Konsolen-Host geöffnet wird (die Anwendung hat Probleme unter anderem bei der farblichen Gestaltung der Konsolenausgabe im Terminal mit Escape-Sequenzen).

Ich habe Farben in der Konsole immer mit SetConsoleTextAttribute gesetzt. Das funktioniert soweit ich es bisher gesehen habe in meinen Projekten auch problemlos mit dem Terminal unter Windows 11. Die Ausgabe sieht dort genauso wie vorher in der cmd.exe aus inkl. Fortschrittsanzeige usw., so dass ich da nichts anpassen musste.

himitsu 14. Mär 2023 17:33

AW: Windows 11/APPTYPE CONSOLE in "cmd.exe" öffnen
 
Teilweise machen die "alten" API das noch und biegen es intern um, aber ...

Neu ist es wie im XServer eines anderen OS.

Die Farben werden in den Stream kodiert (so wie früher noch die EscapeCodes) und nicht mehr parallel übertragen.





Grundsätzlich stehen alle diese alten Consolen-APIs auf deprecated
und sollten nicht mehr verwendet werden.

Zitat:

In diesem Dokument wird die Funktionalität der Konsolenplattform beschrieben, die nicht mehr Teil unserer Roadmap für das Ökosystem ist.
Wir raten davon ab, diese Inhalte in neuen Produkten zu verwenden, aber wir werden weiterhin vorhandene Nutzungen für die unbestimmte Zeit unterstützen.
Unsere bevorzugte moderne Lösung konzentriert sich auf virtuelle Terminalsequenzen, um maximale Kompatibilität in plattformübergreifenden Szenarien zu gewährleisten.
Weitere Informationen zu dieser Entwurfsentscheidung finden Sie in unserem Dokument klassische Konsole und virtuelles Terminal .
https://learn.microsoft.com/de-de/wi...system-roadmap



Zitat:

Die Ausgabe sieht dort genauso wie vorher in der cmd.exe
Du mußt mal in der Darstellung den Retro-Effekt aktivieren ... also das ist sowas von cool, da kann die alte CMD einpacken.

Wie im Delphi (FMX) wird nun alles via 3D-Engine gerendert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz