Flocke
Es hat sich soeben gelöst, nach ewigem Suchen bin ich auf folgende Prozedur gestoßen.
Gefunden habe ich sie sogar
bei uns, nur bis man da mal die richtigen Suchbegriffe findet (
executefile war's).
Delphi-Quellcode:
uses
ShellAPI;
[...]
procedure ExecuteProgramm(const PFileName: string);
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile: string;
begin
ExecuteFile:=PFileName;
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do
begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(ExecuteFile);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@SEInfo) then
begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
end else
begin
Application.MessageBox('Fehler beim Starten des Programms',
'Programm Starten', mb_OK+mb_IconError);
end;
end;
Und mit dieser geht's.
Danke für eure Hilfe.