Einzelnen Beitrag anzeigen

Benutzerbild von cramer
cramer

Registriert seit: 23. Jun 2004
Ort: Velbert (NRW)
96 Beiträge
 
Delphi 2006 Enterprise
 
#1

Mit 32bit Programm 64bit Process starten und beenden

  Alt 12. Sep 2017, 17:17
Hallo,

unter Win10x64 kann ich einen 32bit Process "cmd.exe" problemlos starten und beenden.

Einen 64bit Process "explorer.exe" kann ich zwar starten aber nicht beenden.

wfso liefert beim 64bit sofort ein WAIT_OBJECT_O zurück.

Wenn ich in diesem Fall dann zu Fuß warte und dann terminateProcess versuche, gibts ein "access denied"

Kann es sein, daß "processInfo.hProcess" gar nicht auf den gestarteten Explorer zeigt?
Oder ist es wirklich ein Rechteproblem?

Auszug aus dem Code (BDS2006)
Delphi-Quellcode:
....
   ChangeFSRedirection( true );
   if createProcess(
         nil,
         pchar( prg ),
         nil,
         nil,
         false,
         NORMAL_PRIORITY_CLASS,
         nil,
         pchar( verz ),
         startupInfo,
         processInfo
      ) then begin
      ChangeFSRedirection( false );
      wfsoCode := waitForSingleObject( processInfo.hProcess, timeout * 1000 );
      if wfsoCode = Wait_TimeOut then begin
         terminateProcess( processInfo.hProcess, exitCode );
      end;
      if wfsoCode = WAIT_OBJECT_0 then begin
         if ProcessInfo.dwProcessId > 0 then begin
            xWait := timeOut;
            while xWait > 0 do begin
              sleep( 1000 );
              xWait := xWait -1;
            end;
            terminateProcess( processInfo.hProcess, exitCode );
         end;
      end;
...
Erfahrung ist etwas, daß man erst bekommt, kurz nachdem man es dringend gebraucht hätte.
  Mit Zitat antworten Zitat