daphy wrote: Mit Idoswin(free) hat es leider nicht geklappt, bei identischen Einstellungen bekommt er keine Adminrechte und von Hand mit 'Starte als Administrator' macht's nicht so wirklich spass.
Hier geht auch das... Das mit den Zombies und dem nicht autostartenden IDosWinFree auf Deinem System scheint mir bedenklich.
2 Monate später
Vor der Fertigstellung von SuRun 1.2 habe ich mir die Funktionsweise von Explorer mal näher angesehen.

Unter Windows "ab Vista" gibt es den Explorer-Kommandozeilenparameter "/SEPARATE". Damit startet Explorer immer einen separaten Prozess. SuRun benutzt den Parameter ab Version 1.2.0.0.

Unter Windows "vor Vista" sendet ein neu gestarteter Explorer seine Kommandozeile per Windows Nachricht an einen bereits laufenden.

Ist "Ordnerfenster in eigenen Prozess starten" AUS, sendet der neue Explorer die Nachricht an den Desktop, wartet, bis der Desktop diese Nachricht verarbeitet hat und beendet sich dann.

Ist "Ordnerfenster in eigenen Prozess starten" EIN, sucht Explorer nach einem Fenster mit dem Klassennamen "Proxy Desktop". Findet er kein solches Fenster, erstellt er selbst eins und läuft weiter. Findet Explorer ein Fenster der Klasse "Proxy Desktop", sendet der neue Explorer seine Kommandozeile per Windows-Nachricht an dieses Fenster, wartet, bis es die Nachricht verarbeitet hat und beendet sich dann.

Deswegen sind trotz "Ordnerfenster in eigenen Prozess starten" EIN immer maximal zwei Explorer.exe im System zu finden.

Warum geht das Starten neuer eingeschränkter Explorer nicht, nachdem ein administrativ laufender offen ist?

Der neu gestartete, eingeschränkte Explorer sendet seine Kommandozeile per Nachricht an den bereits laufenden.
So weit ok.
Dann versucht er zu warten, bis der "alte", administrativ laufende Explorer die Nachricht verarbeitet hat.
Das macht er, indem er versucht herauszufinden, dass der "alte" Explorer auf Benutzereingaben wartet (OpenProcess, WaitForInputIdle).
Dazu (OpenProcess) hat er jedoch keine Berechtigung.
Dann beendet der "neue" Explorer sich sofort und der "alte" kann die Kommandozeile nicht mehr aus dem "neuen" auslesen. Dadurch scheint es, dass kein neuer Explorer mehr startet.

Wie kann man trotzdem einen neuen Explorer starten?

Man muss,
* "Ordnerfenster in eigenen Prozess starten" auf EIN setzen,
* alle Fenster mit dem Klassennamen "Proxy Desktop" (WM_CLOSE) schließen.
* den "neuen" Explorer starten
* warten, bis der "neue" Explorer sein "Proxy Desktop" Fenster erstellt hat und es schließen (WM_CLOSE)
* "Ordnerfenster in eigenen Prozess starten" wieder auf AUS setzen, wenn das vorher aus war
8 Tage später
  • [gelöscht]

  • Bearbeitet
Danke!
Das Explorer-Problem war echt störend ;)
2 Monate später
Komisch, das Zombie-Explorer-Problem tritt bei mir hin und wieder noch auf. Ich denke aber, dass ich eine der seltenen Ausnahmen von der Regel bin, denn Kay hat das Problem ja eigentlich gelöst; zudem starte ich den Explorer selten mit administrativen Rechten, weil ich für Admin-Arbeiten ein anderes Programm als Explorer-Ersatz benutze (man muss dann nämlich nicht dauernd F5 drücken. ;-) ).
Mein Verdacht ist, dass die Zombie-Explorer nur entstehen, wenn ich wirklich Dateien verändere, verschiebe usw., denn bei "Systemsteuerung als Administrator" trat das Problem noch nie auf.

Kay, ich denke, Du kannst das Problem wegen der oben genannten Gründe erst mal auf sich beruhen lassen, denn ich scheine eine Ausnahme zu sein, zudem habe ich einen für mich eigentlich konfortableren Workaround gefunden; außerdem weiss ich nicht, ob ich in der nächsten Zeit dazu komme, das Problem näher zu untersuchen. :-)
Eine Antwort schreiben…
Impressum, Datenschutz