说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何结束 Shell 所启动的程序?

HTML文档下载 WORD文档下载 PDF文档下载
VB如何结束 Shell 所启动的程序?
如果被 Shell 所启动的程序还没有结束, 我们就想主动结束它,该怎么做呢?
此时应调用的 Windows API 是 TerminateProcess, 细节如下:
1. API 的声明:
Const SYNCHRONIZE = &H100000
Const INFINITE = &HFFFFFFFF
Private Declare Function OpenProcess Lib "kernel32" (ByVal
dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId
As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As
Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal
hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" Alias "
TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As
Long
注:如果以上的声明放在「一般模块」底下, 应将 Declare 之前的 Private 保
留字去掉, 并且在 Const 之前加上 Public 保留字。
2. Shell 的程序范例:(以执行 MS-DOS 为例)
Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle 变

pId = Shell("Command.com", vbNormalFocus) ' Shell 传回 Process Id
pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle
...
Call TerminateProcess( pHnd, 0 ) ' TerminateProcess 所传入的是 Process
Handle
Call CloseHandle( pHnd )
但以上的方案只适用于 Shell 所启动的程序, ShellExecute 则不适用, 原因是
ShellExecute 函数是通过资源管理器来启动程序, 而资源管理器启动程序之后,
并没有将 Process ID 或 Process Handle 传回来。


webOS复活!LG收购webOS用于智能电视 那些因为HTML5而将消亡的产品 初窥iWatch用户界面:开创基于时间的全新体验 如何编写出拥抱变化的代码? 20个优秀的前端框架 以AWS和vCloud为标杆看四大开源平台的定位 桌面集成开发环境五年内必将“死亡”? 助影人圆梦奥斯卡 8mm相机应用其实很平庸 苹果应用审查团队叫停Cookie追踪技术 时势造英雄:中国早期O2O创业故事 iOS开发与Android开发的四大不同 “消极抵抗”AWS OpsWork?RightScale首次宣布转售并支持GCE 2012年VC都把钱投给了哪些大数据初创公司? 耐用性将成苹果iWatch最大挑战 Sphinx:首款全硬件加速HTML5游戏引擎发布 PayPal创始人Levchin又创办了一家移动支付公司Affirm Zuck、Bill Gates、Jack Dorsey上银幕激励孩子编程 十款最新开源的开发者工具/应用(组图) Django 1.5发布,Python 3开始进入主流? [爆料]英特尔:将Hadoop“固化”到Xeon中 姗姗来迟:微软终于发布Windows 7 IE10正式版 谷歌推Google+登录系统 与Facebook争夺用户信息 微软在CodePlex上开源C++ REST SDK 代号Casablanca 论OpenAPI的起源与历史 LinkedIn开源低延时变化数据捕获系统Databus 微软发布全新WP应用 随时查看App崩溃信息 做iOS开发,我为什么弃用Objective-C而选择RubyMotion? Stinger Initiative:让Hive提速100倍 2013年云计算的九大威胁 W3C小组发起新“汽车与Web平台业务组”项目 苹果CEO:请忘掉股价 未来依然有伟大产品 请问如何设置wingate的server端? 请帮忙给一个能在短时间内做成一个网站(功能很简单)的思路 如何创建一个DialogBar 有关目录问题。 .................寻找最佳方法::『关于关键字检索』(参与有分!) 有谁做过小波分析的分解及重构程序 口误(爆笑) 救命阿 急!在线等 如何补捉MSCOM控件的错误消息? 如何查看dll中的函数,不是引出函数 有没有初恋(第一次)的对象就成了自己的伴侣的? 在线等待,马上送分:怎样将Query查询的数据集全部删除,数据库SQL中的数据也删除 iostream.h 和 iostream的区别 我新建了一个dialog,我想让他在程序一开始出现 为什么在win xp 下安装vc7.0后不能导入图片资源? 请问用C++ 如何打开数据库 请教高手有关C#的DLL的使用???? 我想找一个比较好的菜单系统,哪有呢? iis5.0中的调试能不能做到象在pws中一样轻松? 在线等待,马上送分:怎样将Query查询的数据集全部删除,数据库SQL中的数据也删除 大家一定遇到过同样的问题!有好办法吗? 如何扩充linux的硬盘空间? 关于JBuilder7的注册码和key 一点小问题,请帮帮忙 请教:哪边有详细介绍使用VBSQL对DB库API编程的?? 急!!!我用push模式把dataset的值在运行时,动态赋给crystal report, 在有.net的开发环境中运行没有任何问题,可是在只有发布后,执行 在线等待,马上送分:怎样将Query查询的数据集全部删除,数据库SQL中的数据也删除 linux下的图形处理程序,哪里可找到? EJB菜鸟级问题,我有分可捐赠,那位要请在这里说 报错的原因(Invalid cursor state) infopower有没有for BCB5的呢??哪里可以下载?? 奇怪的现象! 关于接口 请大家提供方案 同志们我想问的是高程中考的是标准C还是C++ SQL查询结果问题 在Delphi中我如何得到,打印机任务个数? 刚上来散分了 安装softice后,机器不能启动了!!!!!! datawindow的edit有editchanged事件,即一改变内容就触发,我想将这个事件加在multilineedit控件里,自定义事件要选择哪个EventID? 在存储过程中如何使用表名变量? 一点小问题,请帮帮忙 菜鸟求助 用VC对WORD文档进行一些操作,高分求救 Suspicious pointer conversion 是什么警告啊? 有哪位高手知道微软提供的的简繁互转的组件是哪个,在线等待,高分送 紧急求助!!既可以选择还可以接受用户输入的下拉选框!!万分感谢!! 在jsp页面中如何实现显示一行文字消息后再更改该文字的内容?? 高分求Excel基本操作代码,如打开关闭文件、取单元格数据之类的 关于MSHFLexGrid与ADODC的几个问题 什么是内建数据库?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘