Inno setup卸载前退出进程、删除文件夹

[Code]function InitializeUninstall(): Boolean;
var MainRun: HWND;
var MVRun:HWND;
begin// FindWindowByWindowName函数参数为窗口名,即窗口标题,而非进程名。
MainRun := FindWindowByWindowName(‘主窗口‘);
MVRun := FindWindowByWindowName(‘Connector‘);
if (ScreenRun<>0) or (MVRun<>0) then
  begin
    if Msgbox(‘安装程序检测到客户端正在运行。‘ #13#13 ‘单击“是”关闭进程,继续卸载,或按“否”退出!‘, mbConfirmation, MB_YESNO) = idNO then
      begin
       Result :=false;                                      // 安装程序退出
      end else
      begin     // 如果两个以上的判断条件,在执行时需要分别再进行判断
        if ScreenRun<>0 then
          begin
            PostMessage(MainRun, 18, 0, 0);                 // 退出主进程
          end;
        if MVRun<>0 then
          begin
            PostMessage(MVRun, 18, 0, 0);                   // 退出Connector进程
          end;
        DelTree(ExpandConstant(‘{app}‘), True, True, True); // 退出进程后删除安装位置所有文件夹
        Result :=true;                                      // 安装程序继续
      end;
  end else
      begin
       Result :=true;                                       // 若未检测到进程,则继续安装程序
      end;
end;
时间: 2024-10-22 14:25:04

Inno setup卸载前退出进程、删除文件夹的相关文章

inno setup 安装前判断进程是否存在,以及停止相应进程&lt;转&gt;

打包的时候遇到了这样的需求:假似用户都是傻瓜                  式操作,如果更新安装程序的时候,之前的老程序还在运行这个时候如果你去提示让用户吧老程序手动退掉也不现实. 所以当遇到这种情况的时候能不能在更新安装程序上下手,在更新的时候就默认吧老程序杀掉(如果老程序在运行). 答案是明确的inno setup 是可以这样的操作. 下面是转的文章,谢谢作者的分享. ============================================================

Inno Setup 安装、卸载前检测进程或服务

[转载]Inno Setup 安装.卸载前检测进程或服务 (2015-04-24 17:37:20) 转载▼ 标签: 转载   原文地址:Inno Setup 安装.卸载前检测进程或服务作者:一去丶二三里 在用Inno打包期间遇到了一些小问题,在这里总结一下: Inno.iss部分内容如下: 1.32位程序的PSVince.dll插件方法. [Files] Source: psvince.dll; Flags: dontcopy [Code] function IsModuleLoaded(mo

Inno Setup 安装前卸载原程序

Inno Setup 安装前卸载原程序 分类: Install Setup 2013-02-02 15:53 2315人阅读 评论(0) 收藏 举报 很多時候我們需要在安裝文件之前卸載原有的程序而不是覆蓋安裝,本文的code就是實現了這樣的功能. 實現原理是:從注冊表'UninstallString'項中讀取卸載信息,用Exec進行靜默卸載. 下面code中APP_NAME為你的程序名,可以去注冊表中確認. 1 function InitializeSetup(): boolean; 2 var

INNO安装卸载自动结束进程插件使用

INNO安装卸载自动结束进程插件使用 2013年09月21日 ⁄ 综合 ⁄ 共 1355字 ⁄ 字号 小 中 大 ⁄ 评论关闭 [Code] //安装前判断是否有进程正在运行,istask.dll文件与打包的exe文件一起function RunTask(FileName: string; bFullpath: Boolean): Boolean;external '[email protected]:ISTask.dll stdcall delayload';function KillTask

inno setup通过用户配置修改ini文件

很多写软件的人都知道,当打包好安装时,想让用户自己来配置一些ini文件的东西.那么具体步骤如下: 1.必须有让用户有配置的界面. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [code] var   mypage:TwizardPage;   lbDatabase:TLabel;   edDatabase:TEdit; //这个是全局变量,要保存的网址<br>  <a href="http://i.

INNO SETUP卸载程序中加入自定义窗体

原文:INNO SETUP卸载程序中加入自定义窗体 [Setup] AppName=My Program AppVerName=My Program v.1.2 DefaultDirName={pf}/My Program [Files] Source: Files/*; DestDir: {app} [Code] const bidDelAll = 1; bidSkipAll = 2; var Form: TSetupForm; CheckListBox: TNewCheckListBox;

linux下的c语言编程删除文件夹

刚刚在学习开始做新项目的时候,学长布置了一项任务,就是在给定一个目录下,要将这个目录下一个星期之前的目录包括里面的文件全部删除,只保留这一个星期内的.百度了好久的资料,终于完成,记录一下防止忘记.(注:文件夹名称默认为日期格式,如20140716) #include<dirent.h> #include<sys/types.h> #include<string.h> #include<stdlib.h> #include<unistd.h> #i

Linux 删除文件夹和文件的命令

linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思 方法/步骤 1 删除文件夹实例:rm -rf /var/log/httpd/access将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 2 删除文件使用实例:rm -f /var/log

Java删除文件夹和文件

Java删除文件夹和文件 以前在javaeye看到过关于Java操作文件的一篇文章,写的很好,但找了半天也没找到,就把找到底几篇文章整理一下,做个总结,算是一个学习备份…… 1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用) Java代码 // 验证字符串是否为正确路径名的正则表达式 private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*"; // 通过 sPath.matches(