Wie kann ich aus meiner Anwendung heraus ein anderes Programm starten?
Delphi 1: Die Win16-API stellt dafür die Funktion WinExec bereit:
winexec('C:\Program.exe', SW_SHOWNORMAL);
Wenn man direkt eine Datei mit WinExec öffnen möchte, muß man zuerst mit der Funktion
"FindExecutable" die damit verknüpfte Anwendung ermitteln. Der folgende
Funktion übergibt man den Namen einer Datei und erhält als Rückgabewert den
Rückgabewert von WinExec:
function OpenFile(FileName:string):integer; var FName, ExeName : PChar; begin ExeName:=StrAlloc(255); FName:=StrAlloc(255); StrPCopy(FName, FileName); if FindExecutable(FName, nil, ExeName)<32 then begin FileName:=StrPas(ExeName)+' '+StrPas(FName); Form1.Label2.Caption:=FileName; StrPCopy(ExeName, FileName); Result:=WinExec(ExeName, SW_ShowNormal); end else begin Result:=0; end; StrDispose(FName); StrDispose(ExeName); end;
Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
nicht getestet | Version nicht betroffen | getestet |
Delphi 2, 3, 4: In der Win32-API gibts dafür die Funktion ShellExecute zum Öffnen eines Programms oder einer Datei mit der dazugehörigen Anwendung:
uses ShellAPI; ShellExecute(Application.MainForm.Handle, 'open', , , '', SW_SHOWNORMAL);
zum Drucken:
ShellExecute(Application.MainForm.Handle, 'print', , '', '', SW_SHOWNORMAL);
zum senden einer E-Mail:
ShellExecute(Application.MainForm.Handle, NIL, 'mailto:Name@domain','','', SW_SHOWNORMAL);
zum Öffnen einer Webseite:
var Url : string; [...] url := 'http://www.irgendwas.de'; ShellExecute(Application.MainForm.Handle, NIL, PChar(URL), '', '', SW_SHOWNORMAL);
Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
nicht getestet | Version nicht betroffen | getestet |
siehe auch:
Wie kann ich aus meiner Anwendung heraus ein anderes Programm starten und
auf dessen Ende warten?
Wie kann aus meinem Programm heraus eine andere Anwendung schließen?