|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Uninstall (самоудаление)
Мужики, делаю деинсталлятор и тут трабла. Если запустить Uninstall.exe из папки программы то директория не удалится из-за запущенного экземпляра. Как можно еще удалить Uninstall.exe вместе с папкой, где он находится? От перестановки действий результат с ошибками.
Код:
procedure TForm1.Button1Click(Sender: TObject); var reg: TRegistry; sFileMask, StartGroup, InstFolder, Temp, AppName : string; F: TextFile; begin reg := TRegistry.Create; try //Удаление группы в меню Пуск reg.OpenKey('Software\MyCompany\ICT', true); StartGroup := reg.ReadString('StartGroup'); MyRemoveDir(GetSpecialFolderPath(CSIDL_COMMON_PROGRAMS) + '\' + StartGroup); //Удаление самой папки с программой InstFolder := reg.ReadString('Installation directory'); MyRemoveDir(InstFolder); //Удаление ярлыка на Рабочем столе sFileMask := GetShortcutFolder(sfDesktop) + 'Ruo.lnk'; DeleteFile(sFileMask); //Удаление ветки в реестре reg.CloseKey; reg.DeleteKey('Software\MyCompany\ICT'); finally reg.Free end; //Самоудаление файла Temp:= 'delete.bat'; AppName:= ExtractFileName(ParamSTR(0)); AssignFile(F, Temp); Rewrite(F); Writeln(F, 'del ' + AppName); Writeln(F, 'del ' + Temp); CloseFile(F); WinExec(PCHar(Temp),SW_HIDE); Halt; end; |
#2
|
||||
|
||||
Обычно батник зацикливается до момента удаления приложения, иначе он может отработать до закрытия приложения.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
Если без удаления папки, то нормально все работает. Может быть при установке стоит извлечь Uninstall.exe в системную папку, к примеру, и оттуда его запускать при деинсталляции?
|
#4
|
||||
|
||||
Создавай батник этажом выше. Или вообще в корне.
Последний раз редактировалось BBBCat, 18.03.2013 в 21:16. |
#5
|
||||
|
||||
InnoSteup куда-то в темп выгружает файлик и запускает его.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#6
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
Значит ерундовые деинсталляторы. Пишу нормальный. Пошел след. методом: Install.exe во время установки копирует уже распакованный Uninstall.exe и Delete.bat в системную папку. Оттуда через Пуск юзер запускает его и все полностью удаляется, после чего запускается батник и удаляет Uninstall.exe =)
|
#8
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
|||
|
|||
Цитата:
|
#10
|
||||
|
||||
Тебе здесь (http://www.cyberforum.ru/delphi-winapi/) уже ответили.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
|||
|
|||
Уже по-своему сделал, получилось. Спасибо всем.
|