![]() |
Mit 32bit Programm 64bit Process starten und beenden
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; ... |
AW: Mit 32bit Programm 64bit Process starten und beenden
Der Explorer Prozess läuft in der Regel nur ein einziges Mal (außer du hast das in den Systemeinstellungen anders festgelegt). Jede neue Instanz schickt nur eine Nachricht an die Hauptinstanz, welche dann ein zusätzliches Fenster öffnet. Sprich: Dein neu gestarteter Prozess wird tatsächlich innerhalb von Sekundenbruchteilen wieder beendet.
|
AW: Mit 32bit Programm 64bit Process starten und beenden
Außerdem : Explorer.exe ist nicht nur der File Explorer :!:
Desktop Startleiste und wer weiß was sonst noch |
AW: Mit 32bit Programm 64bit Process starten und beenden
Danke für die Info.
Im Explorer Ansicht - Optionen - Ansicht ist "[x] Ordnerfenster in einem eigenen Prozess starten" eingestellt und verifiziert: HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Advanced\SeparateProcess = 1 |
AW: Mit 32bit Programm 64bit Process starten und beenden
Ich könnte mir vorstellen, dass der Explorer die extra Prozesse dennoch vom Hauptprozess aus erstellt, also "deine Instanz" -> "Message an Hauptinstanz" -> "startet 2. Instanz".
|
AW: Mit 32bit Programm 64bit Process starten und beenden
Ich habe mit das jetzt mal im Process Explorer angeschaut:
Gestartet wurde der Explorer so: c:\windows\explorer.exe N: und so sieht die Command line: im PE aus: C:\WINDOWS\explorer.exe /factory,{75dff2b7-6936-4c06-a8bb-676a7b00b24b} -Embedding Parent ist svchost.exe(1448) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz