Проверка Установки Inno выполнение процесса

У меня есть проект Установки Inno, который я хочу проверить, работает ли приложение на самом деле прежде, чем удалить его. Я попробовал много путей, но все это перестало работать тихо при выполнении в Windows 7. Например, следующий сценарий, который проверяет на notepad.exe использование процесса psvince.dll всегда возвраты false независимо от Блокнота, являющегося рабочим или нет.

Я использовал psvince.dll в приложении C# для проверки если это работает в соответствии с Windows 7 и это работает без любой проблемы. Таким образом, мое лучшее предположение - то, что установщик не может работать правильно с включенным контролем учётных записей.

[Code]
function IsModuleLoaded(modulename: String): Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';

function InitializeSetup(): Boolean;
begin
   if(Not IsModuleLoaded('ePub.exe')) then
   begin
       MsgBox('Application is not running.', mbInformation, MB_OK);
       Result := true;
   end
   else
   begin
       MsgBox('Application is already running. Close it before uninstalling.', mbInformation, MB_OK);
       Result := false;
   end
end;
5
задан Martin Prikryl 29 June 2016 в 16:25
поделиться

1 ответ

Используете ли вы Unicode Inno Setup? Если да, то должно быть написано

function IsModuleLoaded(modulename: AnsiString): Boolean;

, поскольку psvince.dll не является библиотекой Unicode.

Также в примере проверяется наличие epub.exe, а не notepad.exe.

7
ответ дан 18 December 2019 в 09:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: