Ich habe schon herausgefunden, wie ich soetwas anstelle, aber das will bei keinem Beispiel klappen.
Mein Code:
Delphi-Quellcode:
procedure ShellExecAndWait(dateiname: string; Parameter: string);
var executeInfo: TShellExecuteInfo;
dw: DWORD;
begin
FillChar(executeInfo, SizeOf(executeInfo), 0);
with executeInfo do
begin
cbSize := SizeOf(executeInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
executeInfo.lpVerb := 'open';
executeInfo.lpParameters := PChar(Parameter);
lpFile := PChar(dateiname);
nShow := SW_SHOWMAXIMIZED;
end;
if ShellExecuteEx(@executeInfo) then
dw := executeInfo.HProcess
else
begin
ShowMessage('Fehler: ' + SysErrorMessage(GetLastError));
Exit;
end;
while WaitForSingleObject(executeInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(dw);
end;
//Hier wird die Funktion aufgerufen und erst wenn das Programm beendet wurde sollen die Befehle danach ausgeführt werden
procedure TForm1.Image3Click(Sender: TObject);
begin
FormStyle := fsNormal;
ShellExecAndWait(config.Strings[0], '');
FormStyle := fsStayOnTop;
SetFocus;
end;
Ich hoffe es ist verständlich geschildert.