innosetup安装之前关闭进程
InnoSetup覆盖安装的时候可能会因为源程序正在运行而安装失败,以下脚本能够关闭原运行进程。
[code]
// 安装前检查关闭**进程
function InitializeSetup():Boolean;
//进程ID
var appWnd: HWND;
begin
Result := true;
//Log('Checking If Running...');
//根据窗体名字获取进程ID
appWnd := FindWindowByWindowName('IE Scavenger');
if (appWnd <> 0) then
//进程存在,关闭
begin
//Log('Is Runing...');
//给进程发送关闭消息
PostMessage(appWnd, 18, 0, 0); // quit
end else
//进程不存在
begin
//Log('Not Runing...');
end;
end;
InitializeSetup 函数在安装程序初始化时调用,返回 False 中断安装,返回 True 反之。
FindWindowByWindowName 获取窗口名与指定字串匹配的顶层窗口的句柄。这个函数不搜索子窗口 ,且不执行区分大小写搜索。如果没有找到窗口则返回 0。
运行流程就是根据窗口名获取正在运行的程序,如果已经运行则强制关闭。相应的卸载的时候如果需要先关闭程序,可以调用编写InitializeUninstall函数,关闭源程序。这种是无痛关闭,没有任何提示。你可以自己添加提示,引导用户进行操作。
innosetup安装之前关闭进程的更多相关文章
- inno setup 安装前判断进程是否存在,以及停止相应进程<转>
打包的时候遇到了这样的需求:假似用户都是傻瓜 式操作,如果更新安装程序的时候,之前的老程序还在运行这个时候如果你去提示让用户吧老程序手动退掉也不现实. 所以当遇到这种 ...
- wpf 异常处理和关闭进程
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...
- Dos命令查看端口占用及关闭进程
1. 查看端口占用 在windows命令行窗口下执行: netstat -aon|findstr "8080" TCP 127.0.0.1:80 0.0.0.0:0 LISTENI ...
- Centos下查看占用端口并关闭进程方法
1.查看端口占用情况:netstat –tlnp (加p可以看到是哪个进程占用了端口); 也可以用grep查找对应的被占用的端口,键入netstat –tlnp | grep 3306可以看到PI ...
- hadoop 关闭进程时报错no 进程 to stop
前两天和朋友李天王吃饭的时候,聊到了一个hadoop的运维的很简单问题,感觉很有意思,以前也没有注意过,现在加以重现和整理. 感谢李天王的分享.... 翻看了yarn-deamon.sh st ...
- 在CMD命令行下关闭进程的命令
转载: [重要]在CMD命令行下关闭进程的命令━━━━━━━━━━━━━━━━━━━━━━━━━━ 方法一: 在"运行"中输入:ntsd -c q -pn 程序名字(在MS-Dos ...
- php实现多进程和关闭进程
一.php实现多进程 PHP有个pcntl_fork的函数可以实现多进程,但要加载pcntl拓展,而且只有在linux下才能编译这个拓展. 先代码: <?php$arr = ['30000000 ...
- C# 关闭进程的时候总是捕捉到System.Threading.ThreadAbortException: 正在中止线程
C# 关闭进程的时候总是捕捉到System.Threading.ThreadAbortException: 正在中止线程 这是由ThreadAbortException抛出的 可以写成下面的样子 tr ...
- C#利用ntsd.exe关闭进程
有时我们会发现在任务管理器中无法关闭某个进程,可以使用下面的方法强行关闭,注意不要杀掉进程表中的系统核心进程: 1.使用Windows XP/2000自带的工具 从Windows 2000开始,Win ...
随机推荐
- AppcompatActivity闪退问题解决方案
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0. ...
- ListView和ScrollView冲突
当ListView放在ScrollView中的时候,无论你设置高度为 match_parent(填充父窗体)和wrap_content(包裹内容)都只显示一行,这是你把ListView放在Linear ...
- python-flask 框架使用 flask_mongoengine
开发环境配置 再使用 mongodb 之前,需要先安装 pymongo ,以及flask_mongoengine 1. 切换到 virtualenv 环境 . /pyenv/bin/activate ...
- Android的Activity屏幕切换动画-左右滑动切换
. --> 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始 ...
- Java 测试URL地址是否能正常连接
public static int testWsdlConnection(String address) throws Exception { int status = 404; try { URL ...
- quick-cocos2d-x之testlua之mainMenu.lua
require "helper" require "testResource" require "ActionsTest.ActionsTest&qu ...
- 记录一个多核CPU负载不均衡问题(动态绑定进程到指定cpu:taskset -pc $CPU $PID)
昨晚和一位读者朋友讨论了一个问题:在一台多核 CPU 的 Web 服务器上,存在负载不均衡问题,其中 CPU0 的负载明显高于其它 CPUx,进一步调查表明 PHP-FPM 的嫌疑很大.话说以前我曾经 ...
- 【Mysql】权限管理
mysql权限介绍 mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表. mysql权限表的验证过程为: 1.先从user表中的Host, ...
- python 静态方法,类方法 ,类的继承
转自: http://cowboy.1988.blog.163.com/blog/static/75105798201091141521583/ 1.关于定义类的一些奇特之处 今天在Python中 ...
- 视图组件(View)
1.Android应用的大部分UI组件都放在了android.widget包及其子包,android.view包及其子包中,Android应用的所有UI组件都继承了View类2.View类还有一个重要 ...