次の投稿を読みました。私のコードはまったく同じように見えますが、機能しません:
InnoSetup実行中のプロセスをチェックしています
http://www.vincenzo.net/isxkb/index.php?title=PSVinceから例をコピーしました
しかし、次のようにコードを変更しても、この例は機能しません。
[Code]
function IsModuleLoaded(modulename: AnsiString): Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';
コードは常に返されますfalse
(プログラムは実行されていても実行されていません)。Windows2008R2およびWindows7でテスト済み。
実際、が実行されているかどうかを確認したいと思い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;