我已阅读以下帖子。我的代码看起来完全一样,但不起作用:
Inno Setup Checking for running process
我从http://www.vincenzo.net/isxkb/index.php?title=PSVince复制了这个例子
但是该示例也不起作用,即使我像这样更改代码:
[Code]
function IsModuleLoaded(modulename: AnsiString): Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';
代码总是返回false
(程序没有运行,即使它正在运行)。在 Windows 2008 R2 和 Windows 7 上测试。
事实上,我想检查是否tomcat5.exe
正在运行。所以我认为我不能使用AppMutex
.
我也看过https://code.google.com/p/psvince/source/detail?r=5
但我找不到任何关于该 DLL 兼容性的事实。
完整代码:
[Files]
Source: psvince.dll; Flags: dontcopy
[Code]
function IsModuleLoaded(modulename: AnsiString ): Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';
function InitializeSetup(): Boolean;
begin
if(IsModuleLoaded( 'notepad.exe' )) then
begin
MsgBox('Running', mbInformation, MB_OK);
Result := false;
end
else
begin
MsgBox('Not running', mbInformation, MB_OK);
Result := true;
end
end;