Question

Si je lance cette commande:

C:\WINDOWS\explorer.exe "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}"

à partir du shell Windows (via Fenêtres + R ), mon imprimante et fax est ouvert dans une nouveau processus de explorer.exe. (J'ai donc 2 l'exécution des processus explorer.exe.)

Si j'Execute:

Process.Start(@"C:\WINDOWS\explorer.exe", @"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\" + 
                                          @"::{21EC2020-3AEA-1069-A2DD-08002B30309D}\" + 
                                          @"::{2227A280-3AEA-1069-A2DE-08002B30309D}");

d'un programme C #, mon imprimante et fax ouvrent aussi, mais comme un processus enfant du processus principal de explorer.exe (celui qui exécute le shell de Windows, y compris la barre des tâches, etc.).

Que puis-je faire pour commencer un second processus de explorer.exe avec l'imprimante et la fenêtre des télécopies à partir de C #?

Était-ce utile?

La solution

pensées initiales - vérifier votre « Lancement dossier Windows dans un processus distinct » dans Options des dossiers (Organiser -> Options des dossiers et la recherche -> onglet). Ce n'est pas cochée par défaut, donc « Check » ce et essayer votre code C # à nouveau.

Je sais que ce paramètre affecte la fonction ShellExecute mais je ne suis pas sûr si l'espace de noms de diagnostic de .NET utilise la même route.

ShellExecute (poignée, "explorer", NULL, NULL, SW_SHOWNORMAL);


pensées - deuxième. Une question similaire a déjà été discuté dans stackoverflow et ce poste pourrait vous donner une idée

démarrer un nouveau processus, sans être enfant du processus de frai

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top