1、在普通安裝指令碼前新增庫
!include "logiclib.nsh"
2、; 啟用安裝日誌記錄,該日誌檔案將會作為解除安裝檔案的依據(注意,本區段必須放置在所有區段之前)
section "-logseton"
logset on
sectionend
3、
/****************************** * 以下是安裝程式的解除安裝部分 * ******************************/
; 根據安裝日誌解除安裝檔案的呼叫巨集
!macro delfilebylog logfile
iffileexists `$` 0 +4
push `$`
call un.delfilebylog
delete `$`
!macroend
section uninstall
delete "$instdir\$.url"
; 呼叫巨集只根據安裝日誌解除安裝安裝程式自己安裝過的檔案
!insertmacro delfilebylog "$instdir\install.log"
; 清除安裝程式建立的且在解除安裝時可能為空的子目錄,對於遞迴新增的檔案目錄,請由最內層的子目錄開始清除(注意,不要帶 /r 引數,否則會失去 delfilebylog 的意義)
rmdir "$smprograms\$icons_group"
sectionend
; 以下是解除安裝程式通過安裝日誌解除安裝檔案的專用函式,請不要隨意修改
function un.delfilebylog
exch $r0
push $r1
push $r2
push $r3
fileopen $r0 $r0 r
$fileread $r0 $r1
$ $r1 == `` $ $ $
strcpy $r1 $r1 -2
strcpy $r2 $r1 11
strcpy $r3 $r1 20
$ $r2 == "file: wrote"
$ $r2 == "file: skipp"
$ $r3 == "createshortcut: out:"
$ $r3 == "created uninstaller:"
push $r1
push `"`
call un.delfilebylog.strloc
pop $r2
$ $r2 != ""
intop $r2 $r2 + 1
strcpy $r3 $r1 "" $r2
push $r3
push `"`
call un.delfilebylog.strloc
pop $r2
$ $r2 != ""
strcpy $r3 $r3 $r2
delete /rebootok $r3$$
$strcpy $r2 $r1 7
$ $r2 == "rename:"
push $r1
push "->"
call un.delfilebylog.strloc
pop $r2
$ $r2 != ""
intop $r2 $r2 + 2
strcpy $r3 $r1 "" $r2
delete /rebootok $r3$$
$fileclose $r0
pop $r3
pop $r2
pop $r1
pop $r0
functionend
function un.delfilebylog.strloc
exch $r0
exch
exch $r1
push $r2
push $r3
push $r4
push $r5
strlen $r2 $r0
strlen $r3 $r1
strcpy $r4 0
$strcpy $r5 $r1 $r2 $r4
$ $r5 == $r0
$ $r4 = $r3$$
intop $r4 $r4 + 1
$$ $r4 = $r3
strcpy $r0 ""
$strcpy $r0 $r4
$pop $r5
pop $r4
pop $r3
pop $r2
pop $r1
exch $r0
functionend
這期間或許會遇到該問題。
section: "-logseton"錯誤: 已指定 logset , 但未定義 nsis_config_log .
是這樣的提示,請問怎麼解決呢?
**是用hm vnisedit 指令碼編輯器嚮導產生
**裡都有:
!include "logiclib.nsh"
; 啟用安裝日誌記錄,該日誌檔案將會作為解除安裝檔案的依據(注意,本區段必須放置在所有區段之前)
section "-logseton"
logset on
sectionend
最佳答案
NSIS製作安裝檔案記錄
軟體名稱 nsis 功能 製作安裝程式 學習文章 指令碼記錄 1.自啟動 針對當前使用者 writeregstr hkcu software microsoft windows currentversion run 啟動項名稱 啟動項命令 針對本機所有使用者 writeregstr hklm sof...
NSIS安裝檔案指令碼解釋
calendar.nsi 這是我使用的乙個小軟體的安裝檔案指令碼,其中包含了 使用者安裝目錄選擇 核心程式元件與快捷方式建立選擇 解除安裝程式 安裝程式名稱,將顯示在安裝程式對話方塊標題 name 日曆1900 2100 生成的單個安裝執行檔案 outfile calendar setup.exe ...
Linux安裝檔案
一 linux安裝檔案 linux常見的安裝為tar,zip,gz,rpm,deb,bin等。我們可以簡單的分為三類,第一 打包或壓縮檔案tar,zip,gz等,一般解壓後即可,或者解壓後執行sh檔案 第二 對應的有管理工具的deb,rpm等,通常的這類安裝檔案可以通過第三方的命令列或ui來簡單的安...