上一頁 | 目錄 | 下一頁
B.3 庫的卸載
B.3.1 說明
UnInstallLib 宏用來卸載一個庫。.
B.3.2 參數
庫類型 是否共享 卸載方式 檔案
庫類型
庫的類型
DLL - 動態連結庫 (DLL)
REGDLL - 要註冊的 DLL
TLB - 類型庫或包含 LIBRARY 類型的 DLL
REGDLLTLB - 要註冊的 DLL 並包含類型庫
是否共享
指定要卸載的庫是否與其它應用程式共享
NOTSHARED - 該庫不是共享的
SHARED - 該庫是共享的且僅在共享庫計數減少到不再使用時才移除。
卸載方式
指定卸載方式
NOREMOVE
- 該庫不要被移除。你應該在公共的或重要的系統檔案比如 Visual Basic/C++/MFC 運行時庫使用該選項。
REBOOT_PROTECTED
- 如果正在使用則等重啟後移除 (系統檔案必須)。
- 當檔案沒有系統保護時移除。
NOREBOOT_PROTECTED
- 當庫正在使用時警告用戶。使用戶可以關閉正在使用該庫的應用程式。
- 當檔案沒有系統保護時移除。
REBOOT_NOTPROTECTED
- 如果正在使用則等重啟後移除 (系統檔案必須)。
- 移除該庫而不檢測系統檔案保護。
NOREBOOT_NOTPROTECTED
- 當庫正在使用時警告用戶。使用戶可以關閉正在使用該庫的應用程式。
- 移除該庫而不檢測系統檔案保護。
檔案
用戶系統裡要卸載的檔案位置
B.3.3 選項
LIBRARY_SHELL_EXTENSION
- 在插入 UninstallLib 宏之前定義來在反註冊後調用帶 SHCNE_ASSOCCHANGED 的 SHChangeNotify 函數。它可以在卸載了環境擴展或更改了檔案關聯後更新環境。
LIBRARY_COM
- 在插入 UninstallLib 宏之前定義來在反註冊後調用CoFreeUnusedLibraries 函數。當卸載了 COM 庫後它可以從記憶體裡卸載所有不需要的庫檔案。
B.3.4 例子
!insertmacro UnInstallLib REGDLL SHARED REBOOT_NOTPROTECTED $SYSDIR\dllname.dll
上一頁 | 目錄 | 下一頁