Inno Setup安装卸载时判断是否程序正在运行

Posted 张志峰的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Inno Setup安装卸载时判断是否程序正在运行相关的知识,希望对你有一定的参考价值。

var

ErrorCode: Integer;

IsRunning: Integer;

// 安装时判断客户端是否正在运行

function InitializeSetup(): Boolean;

begin

Result :=true; //安装程序继续

IsRunning:=FindWindowByWindowName(‘E家人客户端‘);

while IsRunning<>0 do

begin

if Msgbox(‘安装程序检测到客户端正在运行。‘ #13#13 ‘您必须先关闭它然后单击“是”继续安装,或按“否”退出!‘, mbConfirmation, MB_YESNO) = idNO then

begin

Result :=false; //安装程序退出

IsRunning :=0;

end else begin

Result :=true; //安装程序继续

IsRunning:=FindWindowByWindowName(‘E家人客户端‘);

end;

end;

end;

// 卸载时判断客户端是否正在运行

function InitializeUninstall(): Boolean;

begin

Result :=true; //安装程序继续

IsRunning:=FindWindowByWindowName(‘E家人客户端‘);

while IsRunning<>0 do

begin

if Msgbox(‘安装程序检测到客户端正在运行。‘ #13#13 ‘您必须先关闭它然后单击“是”继续安装,或按“否”退出!‘, mbConfirmation, MB_YESNO) = idNO then

begin

Result :=false; //安装程序退出

IsRunning :=0;

end else begin

Result :=true; //安装程序继续

IsRunning:=FindWindowByWindowName(‘E家人客户端‘);

end;

end;

end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);

begin

case CurUninstallStep of

usUninstall:

begin // 开始卸载

end;

usPostUninstall:

begin // 卸载完成

// MsgBox(‘CurUninstallStepChanged:‘ #13#13 ‘Uninstall just finished.‘, mbInformation, MB_OK);

// ...insert code to perform post-uninstall tasks here...

ShellExec(‘open‘, ‘http://domain‘, ‘‘, ‘‘, SW_SHOWNORMAL, ewNoWait, ErrorCode);

end;

end;

end;

以上是关于Inno Setup安装卸载时判断是否程序正在运行的主要内容,如果未能解决你的问题,请参考以下文章

卸载失败,因为程序正在运行。如何在尝试删除之前让 Inno Setup 检查正在运行的进程?

Inno Setup命令行安装卸载参数

关于Inno Setup卸载程序删除文件夹的问题

Inno setup 卸载时删除程序文件夹(文件)

使用 inno setup 卸载默认图标

inno setup是不是判断文件是不是存在,然后弹出提示安装时是不是覆盖文件,根据提示安装程序?