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

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