Hi,
immer wieder wird gefragt, wie man die Konsole, die bei einem Programmaufruf mittels ShellExecute geöffnet wird, offen halten kann. Dazu ruft man einfach die Eingabeaufforderung auf, also cmd.exe oder command.com, und übergibt ihr als Parameter
/C (die Konsole wird geschlossen), oder
/K (Die Konsole bleibt offen), sowie das zu startende Programm
Schließlich sieht das ganze so aus:
ShellExecute(Application.Handle, 'open', PChar(GetEnvironmentVariable('ComSpec')), '/K ping www.delphipraxis.net', nil, SW_ShowNormal); //CompSpec enthält den Pfad zur Eingabeaufforderung
oder in einer Funktion:
Delphi-Quellcode:
function StartProgram(pname: String; KeepAlive: Boolean): Integer;
begin
if KeepAlive then
ShellExecute(Application.Handle, 'open', PChar(GetEnvironmentVariable('ComSpec')), PChar('/K '+pname), nil, SW_ShowNormal)
else
ShellExecute(Application.Handle, 'open', PChar(GetEnvironmentVariable('ComSpec')), PChar('/C '+pname), nil, SW_ShowNormal);
result:=GetLastError;
end;
Gruß, Inherited