Повторное открытие панели задач (explorer.exe) после того, как она была убита? - PullRequest
2 голосов
/ 20 февраля 2012

Я пишу небольшую программу для устранения проблем совместимости с 16-битной программой. Это исправление закрывает файл explorer.exe, поскольку проводник переопределяет некоторые палитры в программе. После этого мы снова открываем проводник.

При использовании файла .bat работает:

@ECHO OFF
taskkill /f /IM explorer.exe
EmStraditionX.exe
start /B explorer.exe

Этот метод не идеален, так как для его загрузки требуются дополнительные файлы. Ради простоты предположим, что я не могу распространять больше, чем программа совместимости с C #.

Моей первой мыслью было просто Process.Start("explorer.exe"), но это не сработало, а вместо этого просто открыло папку «Библиотеки» в окне проводника, не делая панель задач снова видимой.

Затем я попытался использовать ту же команду, что и командный файл, за исключением следующего: Process.Start("cmd.exe", "/C start /B explorer.exe"), который снова не работал.

Кто-нибудь знает, как я могу открыть панель задач из C #?

Спасибо, Ruirize.

Ответы [ 2 ]

4 голосов
/ 20 февраля 2012

Использование:

Process.Start(Environment.SystemDirectory + "\\..\\explorer.exe");

Если указать полный путь, все заработает

Martyn

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

Используете ли вы также функцию «Запуск от имени администратора» в параметрах совместимости?

Если вы это сделаете - вы запустите проводник из другого сеанса и не увидите окно, запущенное в другом сеансе (администратор).

...