Der Epina Delphi-Kurs bietet Ihnen eine allgemeine Einführung in das Programmieren mit Delphi/Pascal. Mit vielen ausgearbeiteten Beispielen können Sie direkt in die Delphi-Programmierung einsteigen. Mehr dazu finden Sie hier....

Wie kann ich ein anderes Programm aus meinem Programm starten?

Frage: Wie kann ich ein anderes Programm aus meinem Programm starten?
Antwort: Prinzipiell kommen dazu zwei methoden in Frage: ShellExecute und CreateProcess. Die Dokumentation dazu findet man im Windows SDK. ShellExecute ist die einfachere Methode, CreateProcess ermöglicht eine genauere Kontrolle über den zu startenden Prozess.

Das folgende Beispiel zeigt die Funktion ExecuteTask, über die man sehr einfach ein anderes Programm starten kann:

function ExecuteTask (ParentWin: hwnd; nam, arg: string;
                      DisplayMode: integer): integer;

var
  p1,p2   : PChar;
  retcode : integer;

begin
GetMem(p1,length(nam)+1);
GetMem(p2,length(arg)+1);
StrPCopy(p1,nam);
StrPCopy(p2,arg);
retcode:=ShellExecute(ParentWin,'open',p1,p2,NIL,DisplayMode);
FreeMem(p1,length(nam)+1);
FreeMem(p2,length(arg)+1);
ExecuteTask:=retcode;
end;

Als Parameter müssen das Handle des aufrufenden Windows (meist durch self definiert), der Filename des auszuführenden Programms, optionale Argumente an das Programm und der Anzeigemodus übergeben werden. Als Ergebnis erhält man einen Wert zurück, der oberhalb von 32 anzeigt, dass das Programm ordnungsgemäß gestartet worden ist.

Last Update: 2008-09-09