Announcement

Collapse
No announcement yet.

GetExitCodeProcess

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • GetExitCodeProcess

    Unter Delphi 3 wurde folgende Funktion problemlos kompiliert:
    <pre>
    function WinExecAndWait32(FileName,WorkDir:String; Visibility:integer):integer;
    var
    StartupInfo:TStartupInfo;
    ProcessInfo:TProcessInformation;
    begin
    FillChar(StartupInfo,Sizeof(StartupInfo),#0);
    StartupInfo.cb := Sizeof(StartupInfo);
    StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartupInfo.wShowWindow := Visibility;
    if not CreateProcess(PChar(FileName),
    nil, { pointer to command line string }
    nil, { pointer to process security attributes }
    nil, { pointer to thread security attributes }
    false, { handle inheritance flag }
    CREATE_NEW_CONSOLE or { creation flags }
    NORMAL_PRIORITY_CLASS,
    nil, { pointer to new environment block }
    PChar(WorkDir), { pointer to working directory name }
    StartupInfo, { pointer to STARTUPINFO }
    ProcessInfo) then Result := -1 { pointer to PROCESS_INF }

    else begin
    while WaitForSingleObject(ProcessInfo.hProcess, INFINITE) = WAIT_TIMEOUT do
    Application.ProcessMessages;
    GetExitCodeProcess(ProcessInfo.hProcess,Result);
    end;
    end;
    >/pre>

    Unter Delphi 5 liegt ein Fehler (formaler und realer Parameter stimmen nicht überein) in der Zeile:<p>

    GetExitCodeProcess(ProcessInfo.hProcess,Result);
    <p>
    Ich habe schon den Datentyp des Rückgabewerts der Funktion geändert, bekomme aber nur andere Fehlermeldungen. Meine Frage: was macht hier Delphi 5 anders als Delphi 3?

  • #2
    der rückgabewert der api-funktion GetExitCodeProcess wurde in delphi5 von integer auf cardinal (nicht vorzeichenbehaftet) geändert. ändere lediglich den rückgabewert, dann sollte es klappen (allerdings mußt du die zeile 'result:= -1' in z.b. 'result:= $FFFFFFFF' ändern)

    allgemein wurden viele deklarationen von integer nach cardinal in dieser version von delphi geändert...

    andr

    Comment


    • #3
      Danke für den Tip. Da habe ich ja eine Menge Arbeit vor mir..

      Comment

      Working...
      X