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


         

в удаляемой папке заняты системой


Будем продолжать работать с предыдущим примером:
[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%"

Содержание  Назад  Вперед