这篇文章中记录的方法不好,有时不生效,后续更新一种更好用的方法。
对浏览者带来的不便,还望见谅。
另外一种方法,请到我的博客里查找,已经上传
// 安装前检查关闭**进程
function InitializeSetup():Boolean;
//进程ID
var appWnd: HWND;
begin
Result := true;
//Log('Checking If Running...');
//根据窗体名字获取进程ID
appWnd := FindWindowByWindowName('进程名称');
if (appWnd <> 0) then
//进程存在,关闭
begin
//Log('Is Runing...');
//给进程发送关闭消息
PostMessage(appWnd, 18, 0, 0); // quit
end else
//进程不存在
begin
//Log('Not Runing...');
end;
end;
// 卸载前检查关闭**进程
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var appWnd: HWND;
begin
// 检查**进程是否在运行,是则关闭进程
appWnd := FindWindowByWindowName('进程名称');
if (appWnd <> 0) then
begin
PostMessage(appWnd, 18, 0, 0); // quit
end;
DelTree(ExpandConstant('{app}'), True, True, True);
end;