首页 >> 读书频道 >> 电脑 >> 如何结束 Shell 所启动的程序?
 
· Shell & Wait
· 监视程序的运行情况
· VB应用小集-&
· VB中访问API函数之防
· API函数在VB开发中的
· 如何设计一个可中断循环的
· 用VB实现浮动按钮
· 在菜单上增加图标
· 功能强大的增强列表框
· 用VB制做图型菜单控件
· VB中Combo的一种输
· 用VB5设计多功能计时器
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

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


查看有无更新版本

关键字:VB 2006-9-20

 

如果被 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 传回来。

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

[ 1 ]
如何结束 Shell 所启动的程序? num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑