Scripting NSIS:NsProcess意外输出
NSIS的新手,我试图实现nsProcess插件来检查当前应用程序是否正常工作!我在一个示例代码中成功地实现了相同的功能,但是当我尝试在我的项目中实现相同的功能时,我得到了一个意想不到的输出,如下面的图像消息框所示!!为什么我会得到这个??请有人给我指路。提前感谢您的帮助:) Snipet计划Scripting NSIS:NsProcess意外输出,scripting,installation,nsis,Scripting,Installation,Nsis,NSIS的新手,我试图实现nsProcess插件来检查当前应用程序是否正常工作!我在一个示例代码中成功地实现了相同的功能,但是当我尝试在我的项目中实现相同的功能时,我得到了一个意想不到的输出,如下面的图像消息框所示!!为什么我会得到这个??请有人给我指路。提前感谢您的帮助:) Snipet计划 !include "MUI2.nsh" ;!include "MUI.nsh" !include LogicLib.nsh !include "StrFunc.ns
!include "MUI2.nsh"
;!include "MUI.nsh"
!include LogicLib.nsh
!include "StrFunc.nsh"
!include "FileFunc.nsh"
!include WinMessages.nsh
!include "nsProcess.nsh"
;!include "FindProcess.nsh"
#Dummy Section
...
#EndSecton
!macro CheckAppRunning_ _FILE _ERR
App_Running_Check:
${nsProcess::FindProcess} "MyApp.exe" $R0
MessageBox MB_OK "$R0"
${If} $R0 == 0
MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "Please stop App.exe before continuing" /SD IDCANCEL IDRETRY App_Running_Check
Quit
${EndIf}
notRunning:
!macroend
Function .onInit
!insertmacro CheckAppRunning_ `MyApp.exe` $R0
FunctionEnd
$R0返回此值!!!为什么?这很可能是ANSI与Unicode编译器/插件不匹配
如果您使用的是NSIS v2,则需要将正确的插件版本从.zip(ANSI,除非您使用的是第三方NSIS fork)提取到插件文件夹中。如果您使用的是NSIS v3,那么每种类型都有一个插件子文件夹,请确保在每个子文件夹中都放置了正确的插件。Unicode插件.dll通常位于Unicode子文件夹中,或者在.zip存档文件的文件名中有一个“W”后缀。Hey Anders!谢谢你的回复。但是,在一个示例()中单独实现时,它如何工作良好?因为我只安装了一个版本(NSIS 3.01)。nsi脚本可能包含
Unicode true
,而另一个脚本则表示false或not present。很难说,因为您没有发布完整的代码!嘿,安德斯,非常感谢,问题是Unicode标志!再次感谢。