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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top