Einzelnen Beitrag anzeigen

melodie

Registriert seit: 6. Mai 2007
32 Beiträge
 
Delphi 2005 Personal
 
#1

Programm ausführen und warten bis es beendet wurde

  Alt 7. Sep 2008, 10:56
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.
  Mit Zitat antworten Zitat