nsis检查进程是否运行和遇到的中文问题

321 阅读1分钟

引入nsprocess插件流程

从nsis官网下载nsprocess插件 nsis.sourceforge.io/NsProcess_p…

截屏2024-06-18 12.07.27.png

把下载压缩包里面的Include/nsProcess.nsh 放到 C:\Program Files (x86)\NSIS\Include

把的Plugin/nsProcess.dll 放的 C:\Program Files (x86)\NSIS\Plugins\x86-ansi

把的Plugin/nsProcess.dll 放的 C:\Program Files (x86)\NSIS\Plugins\x86-ansi 并重命名为 nsProcess.dll

在项目.nsi文件中引入 nsProcess.nsh !include "nsProcess.nsh"

就可以用一下代码判断进程是否运行

    nsProcess::_FindProcess "test.exe"
    Pop $R0
    ${If} $R0 == 0
          MessageBox MB_OK "程序正在运行,请关闭后重试!"
          Quit
    ${EndIf}

中文程序名问题

在实际运行中,发现无论程序有没有运行,都是返回0,后面调试发现改成英文程序名就可以了,就把原本的中文程序名改成英文的。