Einzelnen Beitrag anzeigen

Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#1

ShellExecute: Konsolenfenster offen halten

  Alt 31. Jan 2007, 20:45
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
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat