如何在NSIS安装程序中获取具有指定名称的所有进程

时间:2015-12-16 07:45:38

标签: process installer nsis

我想杀死从我的安装目录启动的RunDll32进程。

所以,如果我使用

${nsProcess::KillProcess} "rundll32.exe" $R0

它会杀死我不想发生的系统上的所有rundll32进程。

IMO,我有两种方法可以解决这个问题, 1.从命令行参数中识别感兴趣的过程 2.从进程启动目录(当前目录)中识别。

我看到有很少的插件可以找到这个过程,但他们所做的只是返回找到或找不到。相反,我想要进程的ID或这些进程的列表,然后我将检查每个进程的命令行或启动目录信息,并将根据所需的进程进行操作。

顺便说一句,我检查过以下插件

http://nsis.sourceforge.net/FindProcDLL_plug-in

http://nsis.sourceforge.net/Processes_plug-in

http://forums.winamp.com/showthread.php?t=230998

由于

2 个答案:

答案 0 :(得分:0)

如果您控制.dll,那么最好的选择是提供某种方式以干净的方式关闭应用程序。也许您可以根据其类名找到一个窗口并向其发送WM_CLOSE消息。

如果你只需要在升级/卸载期间关闭应用程序,那么LockedList plug-in比杀死进程要好得多......

答案 1 :(得分:0)

我使用wmic查询修复如下:

react-iscroll