Обновите проводник Windows, чтобы панель инструментов исчезла - PullRequest
0 голосов
/ 29 марта 2010

Я создал панель инструментов Windows Explorer в C #. Эта панель инструментов удаляется при удалении моего приложения, но все равно отображается после отмены регистрации (кэшируется в explorer.exe) explorer.exe необходимо перезагрузить, чтобы панель инструментов исчезла. Как я могу это исправить с помощью кода C #?

Ответы [ 3 ]

1 голос
/ 10 апреля 2010

Нет никакого способа сделать это чисто, не попросив пользователя выйти из системы.

Если есть программный доступ для выключения панели инструментов, вы можете внедрить некоторый код в каждый процесс проводника, в который загружена ваша dll, и отключить панель инструментов, а затем вызвать CoFreeUnusedLibraries (все еще несколько взломанный, но вам не придется убивать процессы)

0 голосов
/ 01 апреля 2010

Я не уверен, что проводник кэширует панель инструментов, если она была должным образом выгружена. Я мало знаю об этих вещах, но вы уверены, что не пропускаете вызов для отмены регистрации в вашем инсталляторе?

0 голосов
/ 29 марта 2010
foreach(Process p in Process.GetProcesses()){

try{

if(p.MainModule.ModuleName.Contains("explorer") == true)p.Kill();

}
catch(Exception e){}

Process.Start("explorer.exe");

}

Давай.

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