K
Hallo fiffi,
ich habe herumexperimentiert. Wenn ich eine GUI-Anwendung durch Anklicken des Icons starte, so erhält man mit der Funktion GetStdHandle(STD_OUTPUT_HANDLE) kein Ausgabe-Handle. Starte ich das Programm aber von der Konsole, so gibt GetStdHandle(STD_OUTPUT_HANDLE) tatsächlich einen Wert zurück. So kannst Du prüfen, ob Dein Programm von der Konsole aus gestartet wurde. Allerdings ist es nicht möglich die Anwendung mit dem Konsolenfenster zu verbinden(für z.B. printf()) oder mittels WriteConsole() direkt in das Fenster zu schreiben. Das liegt wohl daran, dass das Konsolenfenster von einem fremden Prozeß erzeugt wurde(cmd.exe oder conagent.exe). Daher ist es Deiner GUI-Anwendung verboten diese Konsole zu nutzen. Hier hilft tatsächlich nur eine eigene Konsole zu öffnen.
Du könntest aber auch eine Konsolenanwendung schreiben, die ein GUI-Fenster öffnet. Dann werden alle Ausgaben automatisch in das Konsolenfenster geschrieben, wenn die Anwendung auf Kommandozeilenebene gestartet wird.
Ciao