在任务管理器进程列表中命名卸载进程
Name the Uninstall Process in the Task Manager Process list
当您启动使用 WriteUninstaller 编写的 uninstall.exe 时,uninstall.exe 在进程列表 "Au_.exe" 或 "Bu_.exe" 中命名(取决于 exe 的数量你已经启动,它将通过字母表)。
这是我的安装部分代码
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
卸载部分是
Section "Uninstall"
${nsProcess::FindProcess} "${name}.exe" $R0
${If} $R0 == 0
${nsProcess::KillProcess} "${name}.exe" $R0
${EndIf}
${nsProcess::Unload}
DeleteRegKey HKLM "${uninstkey}"
DeleteRegKey HKLM "${regkey}"
Delete "$SMPROGRAMS${name}.lnk"
Delete "$DESKTOP${name}.lnk"
; Remove whole directory from Program Files
RMDir /r "$INSTDIR"
; Remove also database files generated by your app if user checked this option
${If} $RemoveAppDataCheckbox_State == ${BST_CHECKED}
SetShellVarContext all
RMDir /r "${dbFolder}"
${EndIf}
SectionEnd
谁能帮帮我
目前无法自定义此卸载程序文件的名称,但我确实将其从 %UNIQUE%u_.exe
更改为 Un_%UNIQUE%.exe
以用于下一个版本的 NSIS 3...
我找到了解决方案,
当卸载程序启动时,nsis 自动将 uninstaller.exe 复制到临时文件夹并开始使用此 exe 卸载,这就是为什么它的名称是 au_.exe , eu_.exe 等,这是您必须手动复制的修复你的 uninstall.exe 到临时文件夹或任何文件夹,但最好是临时文件夹,然后 运行 从那里它将采用你的 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
当您启动使用 WriteUninstaller 编写的 uninstall.exe 时,uninstall.exe 在进程列表 "Au_.exe" 或 "Bu_.exe" 中命名(取决于 exe 的数量你已经启动,它将通过字母表)。
这是我的安装部分代码
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
卸载部分是
Section "Uninstall"
${nsProcess::FindProcess} "${name}.exe" $R0
${If} $R0 == 0
${nsProcess::KillProcess} "${name}.exe" $R0
${EndIf}
${nsProcess::Unload}
DeleteRegKey HKLM "${uninstkey}"
DeleteRegKey HKLM "${regkey}"
Delete "$SMPROGRAMS${name}.lnk"
Delete "$DESKTOP${name}.lnk"
; Remove whole directory from Program Files
RMDir /r "$INSTDIR"
; Remove also database files generated by your app if user checked this option
${If} $RemoveAppDataCheckbox_State == ${BST_CHECKED}
SetShellVarContext all
RMDir /r "${dbFolder}"
${EndIf}
SectionEnd
谁能帮帮我
目前无法自定义此卸载程序文件的名称,但我确实将其从 %UNIQUE%u_.exe
更改为 Un_%UNIQUE%.exe
以用于下一个版本的 NSIS 3...
我找到了解决方案, 当卸载程序启动时,nsis 自动将 uninstaller.exe 复制到临时文件夹并开始使用此 exe 卸载,这就是为什么它的名称是 au_.exe , eu_.exe 等,这是您必须手动复制的修复你的 uninstall.exe 到临时文件夹或任何文件夹,但最好是临时文件夹,然后 运行 从那里它将采用你的 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