UnInstallLib 宏用来卸载一个库。.
参数
库类型 是否共享 卸载方式 文件库类型
库的类型
DLL - 动态链接库 (DLL)
REGDLL - 要注册的 DLL
TLB - 类型库或包含 LIBRARY 类型的 DLL
REGDLLTLB - 要注册的 DLL 并包含类型库
是否共享
指定要卸载的库是否与其它应用程序共享
NOTSHARED - 该库不是共享的
SHARED - 该库是共享的且仅在共享库计数减少到不再使用时才移除。
卸载方式
指定卸载方式
NOREMOVE
该库不要被移除。你应该在公共的或重要的系统文件比如 Visual Basic/C++/MFC 运行时库使用该选项。
REBOOT_PROTECTED
如果正在使用则等重启后移除 (系统文件必须)。
当文件没有系统保护时移除。
NOREBOOT_PROTECTED
当库正在使用时警告用户。使用户可以关闭正在使用该库的应用程序。
当文件没有系统保护时移除。
REBOOT_NOTPROTECTED
如果正在使用则等重启后移除 (系统文件必须)。
移除该库而不检测系统文件保护。
NOREBOOT_NOTPROTECTED
当库正在使用时警告用户。使用户可以关闭正在使用该库的应用程序。
移除该库而不检测系统文件保护。
文件
用户系统里要卸载的文件位置
选项
LIBRARY_SHELL_EXTENSION
在插入 UninstallLib 宏之前定义来在反注册后调用带 SHCNE_ASSOCCHANGED 的 SHChangeNotify 函数。它可以在卸载了环境扩展或更改了文件关联后刷新环境。
LIBRARY_COM
在插入 UninstallLib 宏之前定义来在反注册后调用CoFreeUnusedLibraries 函数。当卸载了 COM 库后它可以从内存里卸载所有不需要的库文件。
例子 !insertmacro UnInstallLib REGDLL SHARED REBOOT_NOTPROTECTED $SYSDIR\dllname.dll