У меня есть проект Inno Setup, который я хочу проверить, действительно ли приложение запущено перед его удалением. Я пробовал много способов, но все молча завершается неудачей при запуске в Windows 7. Например, следующий скрипт, который проверяет процесс notepad.exe
с использованием psvince.dll
, всегда возвращает false
независимо от того, работает Блокнот или нет.
Я использовал psvince.dll
в приложении C #, чтобы проверить, работает ли он под Windows 7 и работает ли он без проблем. Поэтому я думаю, что установщик не может работать правильно с включенным UAC.
[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;