Удалить свой Exe, удалить загруженную dll.
От: Рома Мик Россия http://romamik.com
Дата: 22.01.02 15:47
Оценка:
Как делают uninstaller'ы?
1. Хочу удалить запущенный exe-шник, из самого этого exe-шника.
2. Хочу гарантированно удалить dll, зарегистрированную как COM сервер, который кто-то может юзать (с оч. большой вероятностью — т.к. shell extention, т.е. Explorer, скорее всего держит.)
Все это, чтобы сделать Uninstaller.
Re: Удалить свой Exe, удалить загруженную dll.
От: Sasparella США  
Дата: 23.01.02 08:27
Оценка:
Здравствуйте Рома Мик, Вы писали:

РМ>Как делают uninstaller'ы?

РМ>1. Хочу удалить запущенный exe-шник, из самого этого exe-шника.
РМ>2. Хочу гарантированно удалить dll, зарегистрированную как COM сервер, который кто-то может юзать (с оч. большой вероятностью — т.к. shell extention, т.е. Explorer, скорее всего держит.)
РМ>Все это, чтобы сделать Uninstaller.

В реестре есть специальное место для стирания/переименования залоченых файлов. Все это дело происходит во время следующей перезагрузки, до загрузки в память большинства компонент, могущих поюзать требуемые файлы. Аналогичным образом например инсталлируются сервиспаки — ведь файлы которые они подменяют — точно заняты — и друого пути просто нет.

Какой конкретно ключ я к сожалению не помню, если к тому времени как найду это будет все еще актуально, напишу.

Саша.
Re[2]: Удалить свой Exe, удалить загруженную dll.
От: mSerg Украина  
Дата: 23.01.02 08:39
Оценка:
Здравствуйте Sasparella, Вы писали:

[skipped]
S>В реестре есть специальное место для стирания/переименования залоченых файлов. Все это дело происходит во время следующей перезагрузки, до загрузки в память большинства компонент, могущих поюзать требуемые файлы. Аналогичным образом например инсталлируются сервиспаки — ведь файлы которые они подменяют — точно заняты — и друого пути просто нет.

S>Какой конкретно ключ я к сожалению не помню, если к тому времени как найду это будет все еще актуально, напишу.

[skipped]

Скорее всего это ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce и параметр — тип string, а значение — что-то вроде "del full_path_to_file".

С уважением, Serg Matskov.
WBR, Serg Matskov
Re[2]: Удалить свой Exe, удалить загруженную dll.
От: Ростислав Глухов Россия http://www.geocities.com/rg2204/
Дата: 23.01.02 08:57
Оценка: 9 (1)
Здравствуйте Sasparella, Вы писали:


S>В реестре есть специальное место для стирания/переименования залоченых файлов. Все это дело происходит во время следующей перезагрузки, до загрузки в память большинства компонент, могущих поюзать требуемые файлы. Аналогичным образом например инсталлируются сервиспаки — ведь файлы которые они подменяют — точно заняты — и друого пути просто нет.


Неправильно это как-то...
надо наверное через АПИ:

MSDN: ID: Q140570
HOWTO: Move Files That Are Currently in Use

Sometimes Win32 applications need to delete, rename, or move files that are currently being used by the system. One common example is that setup programs need to remove themselves from the user's hard disk when they are finished setting up a software package... тра-ля-ля

правда, с вин95 надо по-другому ну да там написано, что делать
- А Вы что курите?
— Минздрав предупреждает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.