Einzelnen Beitrag anzeigen

mse1

Registriert seit: 21. Nov 2007
115 Beiträge
 
#6

Re: Konsole oder keine Konsole?

  Alt 5. Mär 2010, 11:06
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
Martin Schreiber
  Mit Zitat antworten Zitat