NSIS: Неожиданный вывод NsProcess

Новичок в NSIS, я пытался внедрить плагин nsProcess, чтобы проверить, работает ли текущее приложение или нет! Мне удалось реализовать то же самое в примере кода, но когда я попытался реализовать то же самое в своем проекте, я получил неожиданный результат, как показано в окне сообщения изображения ниже! почему я получаю это ?? пожалуйста, может ли кто-нибудь направить меня. Спасибо за помощь в продвижении :)

Фрагмент проекта!

  !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 возвращает это значение!!! Почему ???


person faisal    schedule 20.04.2017    source источник


Ответы (1)


Скорее всего, это несоответствие компилятора/плагина ANSI и Unicode.

Если вы используете NSIS v2, вам необходимо извлечь правильную версию плагина из .zip (ANSI, если вы не используете сторонний форк NSIS) в папку плагинов. Если вы используете NSIS v3, то для каждого типа есть вложенная папка подключаемого модуля, убедитесь, что вы поместили правильный подключаемый модуль в каждую подпапку. Файл .dll подключаемого модуля Unicode часто находится в подпапке Unicode или имеет суффикс «W» в имени файла в ZIP-архиве.

person Anders    schedule 20.04.2017
comment
Эй, Андерс! Спасибо за ответ. Но как это работает нормально, когда реализовано отдельно в примере (nsis.sourceforge.net/NsProcess_plugin) как у меня установлена ​​только одна версия (NSIS 3.01) - person faisal; 20.04.2017
comment
Один скрипт .nsi может содержать Unicode true, в то время как другой говорит false или отсутствует. Трудно сказать, потому что вы не опубликовали свой полный код! - person Anders; 20.04.2017
comment
Привет, Андерс! Большое спасибо, проблема была с флагом Unicode! Спасибо еще раз. - person faisal; 20.04.2017