2009-11-12 2 views
3

У меня есть плагин IE, написанный на C#. В любой момент пользователь запустит деинсталлятор или программу обновления, чтобы переписать или удалить файл плагина.Проводник блокирует мой IE-плагин

Чтобы отменить регистрацию плагина на IE, я должен запустить regasm/u для своего файла, но происходит, что файл по-прежнему заблокирован (загружен), и я не могу удалить его, пока не перезагружу компьютер.

На самом деле процесс проводника блокирует файл. Если я убью процесс проводника, я смогу удалить файл.

Любая идея о том, как я могу удалить или переписать файл, не убивая процесс проводника или перезагружая компьютер?

Благодаря

+0

-Не переименуйте файл. – jonaspp

+0

его плагин BHO. – jonaspp

ответ

2

Когда вы регистрируете свой IE-плагин, установите REG_DWORD в 1 с Name = 'NoExplorer' в BHO-ключ (при условии, что это расширение BHO), например. HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Вспомогательные объекты браузера {ваш guid}

, который сообщает Explorer только загружать расширение из IE, а не в Explorer.exe.

+0

Чувак ... позвольте мне попробовать это ... спасибо! – jonaspp

+0

Спасибо, чувак ... это сработало! – jonaspp

+0

Спасибо @Rory! Для будущих зрителей: если ваш BHO заблокирован 'explorer.exe' (потому что забыл запись' NoExplorer'), попробуйте удалить все его следы из реестра и перезагрузить. И если вам сначала не удастся, попробуйте еще раз. Я должен был сделать это два или три раза; 'explorer.exe' все еще сохранял мою DLL * даже после перезагрузки * 3 раза. Надеюсь, это спасет кого-то несколько минут боли! –

-2

Переименуйте старый файл и записать новый файл.

+0

Я не могу переименовать файл, так как он заблокирован процессом проводника. – jonaspp

+0

В этом случае вам может понадобиться использовать какую-то технику, из-за чего Windows делает это при перезагрузке. Но я не помню, как это сделать. –

+0

Мы делаем это прямо сейчас, это ключ запуска «один раз». Мы пытаемся избежать перезагрузки, потому что это бесшумное обновление для нашего программного обеспечения. Спасибо за вашу помощь! – jonaspp

Смежные вопросы