Einzelnen Beitrag anzeigen

Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#1

Problem mit "CreateProcess" -> Rückgabewert 429

  Alt 6. Feb 2009, 12:41
Hallo,

ich wollte den folgenden Code nutzen um eine externe Applikation auszuführen.
(Die Anwendung verschlüsselt ein XML File)

Klappt nur leider nicht (System: XP-Pro, SP3)
Der Rückgabewert von "RunProcess" ist immer 4294967295
(entspricht: 0xFFFFFFFF -> -1 -> WAIT_FAILED)

Delphi-Quellcode:
function RunProcess(FileName: string; ShowCmd: DWORD; wait: Boolean; ProcID: PCardinal): Longword;
var
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  FillChar(StartupInfo, SizeOf(StartupInfo), #0);
  StartupInfo.cb := SizeOf(StartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
  StartupInfo.wShowWindow := ShowCmd;
  if not CreateProcess(nil,
    @Filename[1],
    nil,
    nil,
    False,
    CREATE_NEW_CONSOLE or
    NORMAL_PRIORITY_CLASS,
    nil,
    nil,
    StartupInfo,
    ProcessInfo)
    then
      Result := WAIT_FAILED
  else
  begin
    if wait = FALSE then
    begin
      if ProcID <> nil then ProcID^ := ProcessInfo.dwProcessId;
      exit;
    end;
    WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
    GetExitCodeProcess(ProcessInfo.hProcess, Result);
  end;
  if ProcessInfo.hProcess <> 0 then CloseHandle(ProcessInfo.hProcess);
  if ProcessInfo.hThread <> 0 then CloseHandle(ProcessInfo.hThread);
end;
Der Aufruf lautet:

Delphi-Quellcode:

...
  sExecuteLine := sCryptApp + ' ' + sConfwareXmlFile;
  // sConfwareXmlFile = D:\Dokumente und Einstellungen\user\Lokale Einstellungen\Anwendungsdaten\XIL_TOOL\1708-482405-001_V.xml
  // sCryptApp = D:\Dokumente und Einstellungen\user\Lokale Einstellungen\Anwendungsdaten\XIL_TOOL\Xil_Tool_Crypter.exe
  lwResult := RunProcess(sExecuteLine, SW_MAXIMIZE, TRUE, @ProcID);
...
Wenn ich den Aufruf händisch über die Shell mache, klappt das.
Kann ich den Aufruf noch irgendwie anders gestalten?

Gruß Holger.

Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat