Einzelnen Beitrag anzeigen

Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 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.
  Mit Zitat antworten Zitat