Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scripting NSIS:NsProcess意外输出_Scripting_Installation_Nsis - Fatal编程技术网

Scripting NSIS:NsProcess意外输出

Scripting NSIS:NsProcess意外输出,scripting,installation,nsis,Scripting,Installation,Nsis,NSIS的新手,我试图实现nsProcess插件来检查当前应用程序是否正常工作!我在一个示例代码中成功地实现了相同的功能,但是当我尝试在我的项目中实现相同的功能时,我得到了一个意想不到的输出,如下面的图像消息框所示!!为什么我会得到这个??请有人给我指路。提前感谢您的帮助:) Snipet计划 !include "MUI2.nsh" ;!include "MUI.nsh" !include LogicLib.nsh !include "StrFunc.ns

NSIS的新手,我试图实现nsProcess插件来检查当前应用程序是否正常工作!我在一个示例代码中成功地实现了相同的功能,但是当我尝试在我的项目中实现相同的功能时,我得到了一个意想不到的输出,如下面的图像消息框所示!!为什么我会得到这个??请有人给我指路。提前感谢您的帮助:)

Snipet计划

  !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标志!再次感谢。