求问,用installshield制作的安装程序,安装时如何禁止多开?
安装程序已在运行状态,再次双击安装程序自动激活已开的页面呢?
您可以使用InstallScript
来编写一个脚本,检查安装程序是否已经在运行。以下是一个简单的脚本示例,用于检查安装程序是否在运行。
function OnBegin()
if (IsSetupAlreadyRunning()) then
MessageBox("安装程序已在运行状态", WARNING);
abort;
endif;
endfunction
function IsSetupAlreadyRunning()
BOOL bAlreadyRunning;
NUMBER nvMutexID;
begin
if (CreateMutex("", "MyInstallShieldMutex", nvMutexID) < 0) then
bAlreadyRunning = TRUE;
else
bAlreadyRunning = FALSE;
endif;
return bAlreadyRunning;
end;
endfunction
这个函数IsSetupAlreadyRunning()
通过创建一个互斥对象(mutex)来检查另一个安装实例是否运行。如果互斥对象已存在,那么返回真(TRUE),否则返回假(FALSE)。OnBegin()
函数在安装开始时运行,如果检测到已有安装实例在运行则弹出警告并中止安装。你需要替换"MyInstallShieldMutex"为你自己的唯一字符串。