在“任务管理器进程”列表中命名“卸载进程”

时间:2016-03-10 07:23:09

标签: nsis

当您启动使用WriteUninstaller编写的uninstall.exe时,uninstall.exe在进程列表“Au_.exe”或“Bu_.exe”中命名(取决于您启动的exe的数量,它将通过字母表)。

这是我的安装部分代码

putIfAbsent()

,卸载部分为

Section "Install"

WriteRegStr HKLM "${regkey}" "Install_Dir" "$INSTDIR"
WriteRegStr HKLM "${uninstkey}" "DisplayName" "${name}"
WriteRegStr HKLM "${uninstkey}" "DisplayIcon" '"$INSTDIR\icon.ico"'
WriteRegStr HKLM "${uninstkey}" "UninstallString" '"$INSTDIR\${uninstaller}"'

; Remove all application files copied by previous installation
RMDir /r "$INSTDIR"

SetOutPath $INSTDIR

; Include all files from /build directory
File /r "${src}\*"

; Create start menu shortcut
CreateShortCut "$SMPROGRAMS\${name}.lnk" "$INSTDIR\${exec}" "" "$INSTDIR\icon.ico"

WriteUninstaller "${uninstaller}"

SectionEnd

任何人都可以帮助我

2 个答案:

答案 0 :(得分:0)

目前无法自定义此卸载程序文件的名称,但我确实将其从%UNIQUE%u_.exe更改为Un_%UNIQUE%.exe以便下一版本的NSIS 3 ...

答案 1 :(得分:0)

我找到了解决方案, 当启动卸载程序时,nsis会自动将uninstaller.exe复制到临时文件夹,并使用此exe开始卸载,这就是为什么它的名称是au_.exe,eu_.exe等,这里是你必须手动将uninstall.exe复制到temp的修复程序文件夹或任何文件夹,但最好是临时文件,然后从那里运行它将取你的uninstaller.exe的名称,它可以是你想要的任何名称,这里是代码

!define uninstaller "Testuninstaller.exe"

Function un.onInit

${nsProcess::FindProcess} "${uninstaller}" $R4
${If} $R4 <> 0
    CopyFiles /SILENT "$INSTDIR\${uninstaller}" "$temp\${uninstaller}"
    ExecWait '"$temp\${uninstaller}" _?=$INSTDIR'
    Quit
${EndIf}    
${nsProcess::Unload}
FunctionEnd

现在你的名字在这个过程中将是Testunistaller.exe

相关问题