Registriert seit: 10. Aug 2005
264 Beiträge
Turbo Delphi für Win32
|
Re: RunProcess ohne EXE sondern mit Datei?
5. Aug 2006, 12:21
Meines Wissens ist ShellExecute da nicht für geeignet, ich habe vor Jahren mal ein Datenbankabgleichtool geschrieben und dort habe ich CreateProcess verwendet:
Delphi-Quellcode:
var StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
StartupInfo.cb := Sizeof(TStartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=SW_HIDE;
if CreateProcess(nil, // Anwendungsname
PChar(Params), // Parameter
nil, // Security
nil, // Security
False,
NORMAL_PRIORITY_CLASS, // Priorität
nil, // Environment
'c:\', // Verzeichnis
StartupInfo,
ProcessInfo) then
begin
if WaitForSingleObject(ProcessInfo.hProcess, 600000) = WAIT_TIMEOUT then
WriteProtokoll('CreateProcess', 'OK ~ FAILED', 'Timeout')
ilse
WriteProtokoll('CreateProcess', 'OK', '');
CloseHandle(ProcessInfo.hProcess);
end
else
WriteProtokoll('CreateProcess', 'FAILED', '');
...
Der Prozess wird gestartet. Dann wird auf das Ende gewartet oder das Warten nach 600 sec abgebrochen.
|
|
Zitat
|