Запустите новый процесс explorer.exe из C # - PullRequest
0 голосов
/ 17 февраля 2012

Если я запускаю эту команду:

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

из оболочки Windows (через Windows + R ), мой принтер и факсы открываются в новом explorer.exe процессе. (Итак, у меня есть 2 запущенных explorer.exe процесса.)

Если я выполню:

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

из программы на C #, мой принтер и факсы тоже открываются, но как дочерний процесс основного explorer.exe процесса (запускающего оболочку Windows, включая панель задач и т. Д.).

Что я могу сделать, чтобы запустить второй explorer.exe процесс с окном принтера и факсов из C #?

1 Ответ

0 голосов
/ 17 февраля 2012

Начальные мысли - проверьте «Запуск папок в отдельном процессе» в разделе «Параметры папки» («Организация» -> «Параметры папки и поиска» -> вкладка «Просмотр»).По умолчанию этот флажок снят, поэтому «проверьте» и попробуйте код C # снова.

Я знаю, что этот параметр влияет на функцию ShellExecute, но я не уверен, использует ли пространство имен Diagnostic в .NET тот же маршрут.

ShellExecute (дескриптор, "исследовать",, NULL, NULL, SW_SHOWNORMAL);


Вторые мысли - похожая проблема уже обсуждалась в stackoverflow, и этот пост может дать вам некоторыеидея.

Начать новый процесс, не будучи потомком процесса нереста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...