Zitat von
gpvg:
Wie kann eine Anwendung erkennen, ob es von der Konsole gestartet wurde?
Prüfe ob die getstdhandle() Funktion ein gültiges
handle liefert. Wenn ja wurde das Programm von der Konsole oder mit pipes gestartet. MSEgui benützt diese Methode um debug-writeln auch ohne aufrufende Konsole zu ermöglichen:
Delphi-Quellcode:
procedure writestdout(value: string; newline: boolean = false);
{$ifdef mswindows}
var
ca1: longword;
{$endif}
begin
if newline then begin
value:= value + lineend;
end;
{$ifdef UNIX}
__write(1,pointer(value)^,length(value));
{$else}
if getstdhandle(std_output_handle) <= 0 then begin
allocconsole;
end;
writefile(getstdhandle(std_output_handle),pointer(value)^,length(value),ca1,nil);
{$endif}
end;
Um festzustellen ob das Programm mit einem Konsolenfenster verbunden ist kann ab win2000 GetConsoleWindow() verwendet werden.
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
Martin