Inno setup 安装、卸载检测进程运行情况

这篇文章中记录的方法不好,有时不生效,后续更新一种更好用的方法。


对浏览者带来的不便,还望见谅。


另外一种方法,请到我的博客里查找,已经上传


[code]
// 安装前检查关闭**进程
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;

你可能感兴趣的:(InnoSetup)