zoukankan      html  css  js  c++  java
  • Inno Setup 在安装程序开始前和卸载程序开始前,检查并关闭运行的进程

     

    (2011-12-29 11:54:56)
    标签:

    innosetup

    it

    分类: 开发工具经验累积
    Inno Setup在安装程序前,如果有使用的进程在运行,会有错误提示,而使得Installer无法写入。
    同样,在卸载程序前,如果有使用的进程仍在运行,会有错误提示,之后卸载不干净,需要手动清除。
     
    所以,只要在安装程序前或者卸载程序前,检查并关闭掉用到的正在运行的进程,就没有问题啦。
     
    [code]
    // 安装前检查关闭**进程
    procedure CurStepChanged(CurStep: TSetupStep);
    var appWnd: HWND;
    begin
      if CurStep = ssInstall then
      begin
         // 检查××进程是否在运行,是则关闭进程
         appWnd := FindWindowByWindowName('进程窗口名称');
         if (appWnd <> 0) then
         begin
            PostMessage(appWnd, 18, 0, 0);       // quit
         end;
      end;
    end;
     
    // 卸载前检查关闭**进程
    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    var appWnd: HWND;
    begin
       // 检查**进程是否在运行,是则关闭进程
       appWnd := FindWindowByWindowName('进程窗口名称');
       if (appWnd <> 0) then
       begin
          PostMessage(appWnd, 18, 0, 0);       // quit
       end;
    end;
     
    其中,Pascal提供了两个函数用于查找进程窗口:FindWindowByClassNameFindWindowByWindowName,前者是根据类名,后者是根据窗口名,查找与之匹配的顶层窗口句柄。
    可以开启进程,然后使用spy++工具,获取进程对应的窗口名或类名。
  • 相关阅读:
    windows批处理命令笔记
    linux 配置互访免密登录 sshkeygen
    jenkins 中 pipeline 管理部署服务到k8s 插件总结
    求教:Net环境导致WPF程序无法启动
    读《C程序设计语言》笔记11
    求教:.Net Framework 3.5 SP1安装失败
    设计模式
    flash基本操作二库面板和元件创建
    AUTOCAD自学教程一
    flash基本操作
  • 原文地址:https://www.cnblogs.com/joean/p/4938089.html
Copyright © 2011-2022 走看看