Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: Konsole Fenster unsichtbar machen

  Alt 14. Mär 2021, 14:40
Mit {$APPTYPE CONSOLE} wird die EXE im PE-Header als Consolen-Anwendung markiert.
Windows stellt dann beim Programmstart eine Verbindung zur Console her (wenn aus einer Console oder einer anderen Consolen-Anwendung gestartet wurde) oder Windows erstellt eine Console, wenn noch Keine existiert.

Ohne {$APPTYPE CONSOLE} kommt durch Windows also keine "automatische" Console.
Dann kann man sich aber selber damit verbinden oder Eine erstellen.
Bei Google suchenAttachConsole bzw. Bei Google suchenAllocConsole und mit Bei Google suchenFreeConsole wieder weg.

https://www.delphipraxis.net/103940-...v2-0-15-a.html
Für windows ist das eine GUI-Anwendung, aber wenn aus einer Console gestartet, verhält es sich wie eine Consolen-Anwendung.
* AttachConsole ... wenn das ging, dann ist schon eine Console verbunden (kann man also auch zum Prüfen verwenden, ob Console oder nicht)
* will man immer eine Console, dann AttachConsole und wenn nicht AllocConsole
* und will man nur GUI, dann eben nichts machen

Auch wenn es eine Console-Anwendung ist, kann man dennoch eine GUI anzeigen
und auch andersrum, kann eine GUI-Anwendung ebenfalls eine Console einblenden.


ACHTUNG:
Wenn PeekMessage ein False sagt, dann darf TranslateMessage/DispatchMessage nicht gemacht werden.
Da dein WHILE keine Abbruchbedingung hat (warum nicht?), kannst auch Sleep und PeakMessage weglassen und GetMessage verwenden.

+ beim SetErrorMode?
Da werden Bits "kombiniert" und das macht man gefälligst mit OR.
$2B or not $2B

Geändert von himitsu (14. Mär 2021 um 14:44 Uhr)
  Mit Zitat antworten Zitat