Здравствуйте Norman, Вы писали:
N>Как полностью удалить программу включая деинсталятор? Проблемма в том что запущенный файл удалить нельзя.
Есть изощрённый (извращённый?) метод:
— создаёшь из программы bat-файл
— запускаешь его и быстренько завершаешь программу
— из bat-файла удаляешь программу и самого себя
Этот метод описан в одной из статей Рихтера в MSJ в MSDN.
Ещё вариант — переходить на нормальные методы инсталляции/удаления. Но тут я тебе не советчик, так как сам этого не умею.
Делай что должно, и будь что будет
Re[2]: Удалить самаого себя
От:
Аноним
Дата:
17.07.02 23:58
Оценка:
Здравствуйте SergH, Вы писали:
SH>Есть изощрённый (извращённый?) метод: SH>- создаёшь из программы bat-файл SH>- запускаешь его и быстренько завершаешь программу SH>- из bat-файла удаляешь программу и самого себя
Пробовал не подходит к сожалению
Во первых сробатывает через раз, даже если пишешь
:AGAIN
deltree /y some.exe
@if EXIST some.exe goto AGAIN
Во вторых, надо под 2000 и 9x/НТ разный код потому как deltree под 2000 нет, а параметр "/y" del от 9x/НТ не понимает и вся эта конструкция может подвиснуть("Вы действительно хотите удалить?")
В третьих не надежно, потому как все равно может подвиснуть как только не сможет по каким либо причинам удалить файл...
SH>Ещё вариант — переходить на нормальные методы инсталляции/удаления. Но тут я тебе не советчик, так как сам этого не умею.
Здравствуйте Аноним, Вы писали:
А>Здравствуйте SergH, Вы писали:
А>Во первых сробатывает через раз, даже если пишешь А>:AGAIN А>deltree /y some.exe А>@if EXIST some.exe goto AGAIN
А>Во вторых, надо под 2000 и 9x/НТ разный код потому как deltree под 2000 нет, а параметр "/y" del от 9x/НТ не понимает и вся эта конструкция может подвиснуть("Вы действительно хотите удалить?")
А>В третьих не надежно, потому как все равно может подвиснуть как только не сможет по каким либо причинам удалить файл...
SH>>Ещё вариант — переходить на нормальные методы инсталляции/удаления. Но тут я тебе не советчик, так как сам этого не умею.
А>А это как? Хоть в какую сторону копать?
В сторону MoveFileEx("filename", NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте Аноним, Вы писали:
SH>>Ещё вариант — переходить на нормальные методы инсталляции/удаления. Но тут я тебе не советчик, так как сам этого не умею.
А>А это как? Хоть в какую сторону копать?
Я имел ввиду msi и его друзей. Короче, форум "Инсталляция, поддержка ..."