Nsis 是否有一种方法可以杀死与应用程序相关的所有流程实例,而不考虑使用NSI的特定用户?

Nsis 是否有一种方法可以杀死与应用程序相关的所有流程实例,而不考虑使用NSI的特定用户?,nsis,Nsis,从管理员用户卸载应用程序时,只有与此特定用户相关的进程正在NSIS中清理。这个过程的另一个实例是不杀戮 接下来的步骤: Section "Uninstall" ${nsProcess::FindProcess} "sysnotification.exe" $R0 MessageBox MB_OK "nsProcess::FindProcess$\n$\n\ Errorlevel: [$R0]" ${if} $

从管理员用户卸载应用程序时,只有与此特定用户相关的进程正在NSIS中清理。这个过程的另一个实例是不杀戮

接下来的步骤:

Section "Uninstall"

${nsProcess::FindProcess} "sysnotification.exe" $R0

MessageBox MB_OK "nsProcess::FindProcess$\n$\n\
            Errorlevel: [$R0]"
${if} $R0 == 0
BringToFront
${nsProcess::KillProcess} "sysnotification.exe" $R0
MessageBox MB_OK "KillProcDLL::KillProc$\n$\n\
                    Errorlevel: [$R0]"
${EndIf}

${nsProcess::Unload}

SectionEnd
从管理员用户安装应用程序,然后作为普通用户登录。因此,对于每个用户,我看到一个进程(这是预期的行为)

当切换回管理员用户并卸载应用程序时,只能为管理员用户终止进程。正常的用户流程仍在显示

是否有任何方法可以终止与应用程序相关的所有进程,而不考虑特定于用户的进程

我正在使用下面的代码片段:

Section "Uninstall"

${nsProcess::FindProcess} "sysnotification.exe" $R0

MessageBox MB_OK "nsProcess::FindProcess$\n$\n\
            Errorlevel: [$R0]"
${if} $R0 == 0
BringToFront
${nsProcess::KillProcess} "sysnotification.exe" $R0
MessageBox MB_OK "KillProcDLL::KillProc$\n$\n\
                    Errorlevel: [$R0]"
${EndIf}

${nsProcess::Unload}

SectionEnd

管理员可以查找并终止与其他用户一样运行的进程。插件wiki页面上有以下内容:

以管理员身份运行或切换到其他用户时查找其他用户的进程

编辑:

事实证明,插件没有请求,因此无法终止与其他用户一样运行的进程


您可以尝试联系作者并要求他们添加此功能。同时,我建议您改用。

可能nsProcess没有要求调试权限,我会调查。不要破坏您的帖子。通过在此网站上发布,您已不可撤销地授予Stack Exchange network在其认为合适的时间内根据发布该内容的权利。有关删除的替代方案,请参见: