Starten Sie einen neuen explorer.exe-Prozess von C # aus
-
27-10-2019 - |
Frage
Wenn ich diesen Befehl ausführe:
C:\WINDOWS\explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}"
In der Windows-Shell (über Windows + R ) werden mein Drucker und meine Faxe in einem neuen explorer.exe
-Prozess geöffnet.(Ich habe also 2 explorer.exe
-Prozesse ausgeführt.)
Wenn ich Folgendes ausführe:
Process.Start(@"C:\WINDOWS\explorer.exe", @"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\" +
@"::{21EC2020-3AEA-1069-A2DD-08002B30309D}\" +
@"::{2227A280-3AEA-1069-A2DE-08002B30309D}");
In einem C # -Programm werden auch mein Drucker und meine Faxe geöffnet, jedoch als untergeordneter Prozess des Hauptprozesses explorer.exe
(derjenige, auf dem die Windows-Shell ausgeführt wird, einschließlich der Taskleiste usw.).
Was kann ich tun, um einen zweiten explorer.exe
-Prozess mit dem Drucker- und Faxfenster von C # aus zu starten?
Lösung
Erste Gedanken - Überprüfen Sie Ihre "Ordnerfenster in einem separaten Prozess starten" unter Ordneroptionen (Organisieren -> Ordner- und Suchoptionen -> Registerkarte Ansicht).Dies ist standardmäßig deaktiviert. Überprüfen Sie dies daher und versuchen Sie es erneut mit Ihrem C # -Code.
Ich weiß, dass diese Einstellung die ShellExecute-Funktion beeinflusst, bin mir jedoch nicht sicher, ob der Diagnose-Namespace von .NET dieselbe Route verwendet.
ShellExecute (Handle, "Explore", NULL, NULL, SW_SHOWNORMAL);
Zweite Gedanken - Ein ähnliches Problem wurde bereits im Stackoverflow diskutiert, und dieser Beitrag gibt Ihnen möglicherweise eine Vorstellung.
Starten Sie einen neuen Prozess, ohne ein zu seinKind des Laichprozesses