Es ist nicht die Schuld von TaskKill. Wenn Sie zwei Datei-Explorer-Fenster geöffnet haben, bedeutet dies nicht unbedingt, dass Sie zwei separate Prozesse für jedes geöffnet haben.
Eine der Einstellungen, die sich auf Ihre Situation auswirken können, finden Sie unter:
Ordneroptionen → Registerkarte Ansicht → Erweiterte Einstellungen → "Ordnerfenster in einem separaten Prozess starten"
Diese Einstellung hat folgende Auswirkungen:
- Wenn dieses Kontrollkästchen nicht aktiviert ist, werden die Datei-Explorer-Fenster meistens in demselben
explorer.exe
Prozess geöffnet wie Taskleiste und Startmenü. Der Fenstertitel dieses Prozesses ist festgelegt. Wenn Sie diesen Prozess beenden, verschwindet Ihre gesamte Windows-Shell. - Wenn dieses Kontrollkästchen aktiviert ist, ist der Prozess, der die Taskleiste und das Startmenü hostet, immer von dem Prozess getrennt, in dem sich Ihre File Explorer-Fenster befinden. Aber nach wie vor, das bedeutet nicht, dass Sie einen separaten erhalten
explorer.exe
für jedes Datei - Explorer - Fenster Prozess. Ich habe dies in Windows Server 2008 R2 und Windows 10 1709 getestet. Ich bekomme immer genau einenexplorer.exe
Prozess für alle meine File Explorer-Fenster und einen weiteren Prozessexplorer.exe
für meine Taskleiste und das Startmenü. DerWINDOWTITLE
Prozess dieses Prozesses ist immer der Titel des zuletzt geöffneten Datei-Explorer-Fensters.
Ein Grund, subprocess.Popen()
der einen separaten Datei-Explorer-Prozess öffnet, könnte sein, dass Sie einen 32-Bit-Python auf einem 64-Bit-Computer ausführen. In diesem Fall wird subprocess.Popen()
nur ein 32-Bit -Computer geöffnet explorer.exe
. (Dies ist nicht in allen Windows-Versionen der Fall, aber Sie haben keine angegeben.) Ein anderer Grund ist der Out-of-Process-DCOM-Aufruf, der mich immer auslöst.
Aber der Kern davon ist:
- Fenster ≠ Prozess