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++工具,获取进程对应的窗口名或类名。

时间: 2024-11-11 08:24:13

Inno Setup 在安装程序开始前和卸载程序开始前,检查并关闭运行的进程的相关文章

Inno setup定制安装界面

原文:Inno setup定制安装界面 Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我的界面. 首先,脚本中增加如下设置,以禁至所有Inno setup自身显示的界面: DisableDirPage=yes DisableFinishedPage=yes DisableProgramGroupPage=yes DisableReadyMemo=

【1】软件打包 Inno Setup -- 修改安装过程的界面显示语言

默认情况下的安装包安装时,界面显示语言为English,使用的是Default.isl界面语言包,所以想换成Chinese中文界面的,只需要按 照以下步骤处理即可: [1]下载或新建一个中文界面的ISL文件 可以直接到网上下载现成的Chinese.isl文件(需要与Default.isl的版本对应),或者将下列文本保存成Chinese.isl文件(实际为对应 Default.isl的中文翻译文件). [LangOptions] ; 以下的三条内容非常重要.务必读懂帮助文件中的"[LangOpti

Inno Setup 下载安装

Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件. 目前主流版本有inno5.5.9标准版和inno5.4.3增强版,安装时都可以选择asci或unicode,如我的版本显示是5.5.9(a),其中(a)就是ascii的缩写. 下面分别提供百度云下载链接: Inno 5.5.9中文版:http://pan.baidu.com/s/1slPHWUL Inn

inno setup静默安装

[Code] //关键代码静默安装 procedure InitializeWizard(); begin //不显示边框,这样就能达到不会闪两下了 WizardForm.BorderStyle:=bsNone; end; procedure CurPageChanged(CurPageID: Integer); begin //因为安装过程界面隐藏不了,所以设置窗口宽高为0 WizardForm.ClientWidth := ScaleX(0) WizardForm.ClientHeight 

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

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

开源Inno Setup官网下载、安装、打包教程(官网安装向导中文语言包)

安装Inno Setup篇 1.搜索Inno Setup 2.下载Inno Setup 3.选择下载最新 innosetup-5.5.9-unicode.exe 版本(innosetup-5.5.9.exe同样支持中文安装向导) 4.安装Inno Setup:选择安装语言(没有中文选项) 5.安装Inno Setup:同意协议 6.安装Inno Setup:安装路径 7.安装Inno Setup:安装Preprocessor 8.安装Inno Setup:创建桌面快捷方式 9.安装Inno Se

Inno Setup打包的程序提升为管理员权限

Inno Setup打包的程序在Win7 64位系统上安装,安装步骤最后一步若选中运行程序,会跳出一个错误提示框. 这是因为64位win7系统运行程序时需要管理员权限,而打包的文件并没有这个权限就试图直接运行. 解决的办法网上有很多,但都说的不具体.如http://www.cnblogs.com/walker-lc/articles/3470679.html 添加管理员权限 1.在[Setup]节点添加 PrivilegesRequired=admin 2.进入安装目录,找到文件SetupLdr

Inno Setup Compiler打包需要管理员权限的程序

当你的桌面应用程序在manifest文件中设置需要管理员权限运行,若在打包应用程序时没有对Inno Setup 做相应的配置,在程序安装结束勾选了“运行PCTV双模软终端”,如下图所示: 会出现如下图所示异常: 解决方法如下: 找到Inno Setup Compiler安装目录下的SetupLdr.e32文件,用ResHacker来打开SetupLdr.e32,修改Manifest文件: 将<requestedExecutionLevel level="asInvoker" ui

inno setup介绍及官方网站地址

使 用 笔 记 1.Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件.关键功能:★ 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003,XP,Me,NT 4.0 (不需要服务包). ★ 支持创建单个 EXE 格式的安装程序,使你的程序可以很方便地在网络上发表