判断一个32位程序是否结束
2008-02-23 06:50:31来源:互联网 阅读 ()
Microsoft 提供了少量的函数,如:WaitForSingleObject和 WaitForMultipleObjects 来完成该功能。尽管如此,这些函数并不是时时都有效。举例来说,如果你调用WaitForSingleObject函数监测Internet Explorer的运行,同时你又选择了“帮助”菜单中的“教程”项,结果将会是系统死锁,你不得不终止WaitForSingleObject函数的运行。造成这种结果的 原因是你点选了“教程”后,会返回给Internet Explorer一个地址,告诉浏览器转到下一个网址。这种情况通常发生在一个程序是由调用它的父程序中的一个过程或对象所启动,反过来却要等待父程序的结束。
本文的目的就是要解决这个问题。
Declare
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess&, ByVal bInherithandle&, ByVal dwProcessid&) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpexitcode As Long) As Long
' Required Constants
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400
Code
Sub ShellWait(cCommandLine As String)
Dim hShell As Long
Dim hProc As Long
Dim lExit As Long
hShell = Shell(cCommandLine, VBNormalFocus)
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
Do
GetExitCodeProcess hProc, lExit
DoEvents
Loop While lExit = STILL_ACTIVE
End Sub
调用 ShellWait,控制权将不会交给一个过程,直到调用该过程的程序结束
查看GetExitCodeProcess的用法
上一篇: VB软件设计中的几个问题
下一篇: 用VB5开发商品软件的经验谈
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:FSO对象模型在VB中的应用
下一篇:VB 6.0中类聚集关系的实现
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash