NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Delphi / Pascal (http://www.netvision-technik.de/forum/forumdisplay.php?f=60)
-   -   Ein externes Programm ausführen und warten, bis di (http://www.netvision-technik.de/forum/showthread.php?t=2842)

Bluesteel 20.02.2009 21:48

Ein externes Programm ausführen und warten, bis di
 
Ein externes Programm ausführen und warten, bis dieses beendet ist


Dies erreicht man mit folgender Funktion:
Die Unit ShellAPI muss hinzugefügt werden.
Code:

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_SHOWNORMAL;
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;

Beispielaufruf: ShellExecAndWait('C:\Windows\notepad.exe', nil);


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.