УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS


2. Методы деинсталяции. - часть 2


Будем продолжать работать с предыдущим примером:

[Uninstall]

DelFiles=files

RunPostSetupCommand=Del.Folders

[Del.Folders]

rundll32.exe advpack,DelNodeRunDLL32 "%11%, APPDIR"

Важно! Нужно учитывать, что в случае, когда файлы в удаляемой папке заняты системой или выполняются, DelNodeRunDLL32 не сработает. В следующем способе вы увидите метод решения этой проблемы с помощью консольной команды TASK KILL.

Способ 3. "Готовый шаблон"

Данный способ предложил Jameszero

[Version]

Signature="$Windows NT$"

AdvancedINF=2.5

[Optional Components]

Uninst7

[Uninst7]

OptionDesc   =%PROG_NAME%

Modes    =0,1,2,3

AddReg   =PROG.AddReg

ProfileItems   =PROG.AddShortcut

Uninstall   =mUninst.Uninstall

[DefaultInstall]

OptionDesc   =%PROG_NAME%

Modes    =0,1,2,3

AddReg   =PROG.AddReg

ProfileItems   =PROG.AddShortcut

Uninstall   =mUninst.Uninstall

[Uninstall]

BeginPrompt   =BeginUnInsPrompt

RunPreSetupCommands =Close.Prog:1

RunPostSetupCommands =Dir.Delete

EndPrompt   =EndUnInsPrompt

DelReg   =PROG.DelReg

ProfileItems   =PROG.DelShortcut

[BeginUnInsPrompt]

Title=Деинсталляция %PROG_NAME%

Prompt=Вы действительно хотите удалить %PROG_NAME% и все компоненты программы?

ButtonType=YESNO

[Close.Prog]

TASKKILL /F /IM %PROG_1%

TSKILL %PROG_2%

[Dir.Delete]

rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%

[EndUnInsPrompt]

Prompt=Программа %PROG_NAME% удалена.

[PROG.AddReg]

HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayIcon",0,"%16422%\%PROG_DIR%\%PROG_1%"

HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"

HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayVersion",,"v%PROG_VERS%"



Начало  Назад  Вперед