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

Nsis 在任务管理器进程列表中命名卸载进程,nsis,Nsis,当您启动使用WriteUninstiller编写的uninstall.exe时,uninstall.exe将在进程列表中命名为“Au_uu.exe”或“Bu_uu.exe”(取决于您启动的exe数量,它将通过字母表显示) 这是我的安装部分代码 Section "Install" WriteRegStr HKLM "${regkey}" "Install_Dir" "$INSTDIR" WriteRegStr HKLM "${uninstkey}" "DisplayName" "${name}"

当您启动使用WriteUninstiller编写的uninstall.exe时,uninstall.exe将在进程列表中命名为“Au_uu.exe”或“Bu_uu.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_uu.exe
更改为
Un_u%UNIQUE%.exe
用于下一版本的NSIS 3…

我找到了解决方案, 启动卸载程序后,nsis会自动将uninstall.exe复制到temp文件夹,并使用此exe开始卸载,这就是为什么它的名称为au_uu.exe、eu_uu.exe等,以下是您必须手动将uninstall.exe复制到temp文件夹或任何文件夹的修复方法,但temp更可取,然后从那里运行它,它将采用您的卸载程序的名称。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
!定义卸载程序“Testuninstaller.exe”
函数un.onInit
${nsProcess::FindProcess}“${uninstaller}”$R4
${If}$R4 0
CopyFiles/SILENT“$INSTDIR\${uninstaller}”$temp\${uninstaller}”
ExecWait'$temp\${uninstaller}'\uxAE?=$INSTDIR'
退出
${EndIf}
${nsProcess::Unload}
功能端
现在,进程中的名称将是Testunistaller.exe