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

如何判定VB调用的一个EXE程序已经结束.

HTML文档下载 WORD文档下载 PDF文档下载
如何判定VB调用的一个EXE程序已经结束.
- noname
回答:
新建一个项目,添加命令按钮和标签各一个,加上以下代码,然后运行....
Option Explicit
' Copyright ? 1997 by Desaware Inc. All Rights Reserved
Dim DemoFile$
Private Const NORMAL_PRIORITY_CLASS = &H20 '如果进程位于前台,则基本
值是9;如果在后台,则优先值为7
Private Const INFINITE = &HFFFFFFFF
Private Const WAIT_TIMEOUT = &H102& '对象保持未发出信号的状态,
但等待超时时间已经超过

'说明∶PROCESS_INFORMATION结构由CreateProcess函数将关于新建立的进程和
'主要线索的信息写入其中成员变量
Private Type PROCESS_INFORMATION '
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type

'说明∶STARTUPINFO结构用在CreateProcess函数中指定为新进程建立的新窗口的
主要属性。这一
'一信息影响由CreateWindows函数建立的第一个窗口
Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type

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 CreateProcess Lib "kernel32" Alias "
CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine
As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes
As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long,
lpEnvironment As Any, ByVal lpCurrentDirectory As String, lpStartupInfo
As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function WaitForInputIdle Lib "user32" (ByVal hProcess
As Long, ByVal dwMilliseconds As Long) As Long




Private Sub command1_Click()
Dim res&
Dim sinfo As STARTUPINFO
Dim pinfo As PROCESS_INFORMATION
sinfo.cb = Len(sinfo)
sinfo.lpReserved = vbNullString
sinfo.lpDesktop = vbNullString
sinfo.lpTitle = vbNullString
sinfo.dwFlags = 0

Label1.Caption = "正在启动程序"
Label1.Refresh
' CreateProcess函数,用于创建一个新的进程
res = CreateProcess(DemoFile, vbNullString, 0, 0, True, _
NORMAL_PRIORITY_CLASS, ByVal 0&, vbNullString,
sinfo, pinfo)
If res Then
Label1.Caption = "程序正在运行"
WaitForTerm pinfo
End If
Label1.Caption = "程序已经结束"

End Sub

Private Sub WaitForTerm(pinfo As PROCESS_INFORMATION)
Dim res&
' 等待指定的进程进入空闲状态,,空闲(Idle)指的是进程准备处理
'一条消息、但目前暂时没有消息需要处理的一种状态
Call WaitForInputIdle(pinfo.hProcess, INFINITE)
' 关闭指定进程
Call CloseHandle(pinfo.hThread)
Command1.Enabled = False
Label1.Refresh
Do
'等待发出信号
res = WaitForSingleObject(pinfo.hProcess, 0)
If res <> WAIT_TIMEOUT Then '如果对象发出了信号
Exit Do
End If
DoEvents
Loop While True
Command1.Enabled = True
Call CloseHandle(pinfo.hProcess)
End Sub

Private Sub Form_Load()
DemoFile = InputBox$("请输入需要运行的程序名", , "C:\WINDOWS\notepad.
exe")
End Sub
-星泽(xing) vbxing@990.net

回答二:
例程如下:

Option Explicit

Private Declare Function OpenProcess Lib "kernel32" (ByVal
dwDesiredAccess
As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal
hProcess
As Long, _
lpExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As
Long)
As Long

Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STATUS_PENDING = &H103

Private Sub RunShell(cmdline As String)
Dim hProcess As Long
Dim ProcessId As Long
Dim ExitCode As Long
ProcessId = Shell(cmdline, 1)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessId)
Do
Call GetExitCodeProcess(hProcess, ExitCode)
DoEvents
Loop While ExitCode = STATUS_PENDING
Call CloseHandle(hProcess)
MsgBox cmdline & "已经关闭"
End Sub

Private Sub Command1_Click()
RunShell "c:\windows\notepad.exe"
End Sub

VB游戏写作技巧(2)网络篇 VB中播放WAV文件 VB中播放三维动画编程一例 Visual Basic 5.0多媒体创作技巧 Visual Basic 5.0中实现视频画中画 Visual Basic 中制作流水灯 Visual Basic动画编程技术 Visual Basic环境下Video/ Audio压缩数据流播放技术 Visual Basic设计多媒体应用程序 Visual Basic影音控制 Web动画图像分解在VB动画设计中的应用 播放 .flc 动画 -VB资料 播放 AVI -VB资料 播放MP3文件 -VB资料 播放背景音乐 -VB资料 播放声音文件 -VB资料 播放资源文件文件中的声音-VB资料 不用ActiveX控件也能播放声音文件-VB资料 VB创建动态图标 电影结束画面的卷动效果-VB资料 二进制操作截取VCD片断 -VB资料 非常VB测声卡 关闭屏幕保护功能,改变屏保等待时间 -VB资料 VB获取桌面窗口图象 红色警戒&amp;终级动员令-VB资料 检查是否安装声卡 -VB资料 将 .flc 动画档放在某一个 hWnd 之中播放 -VB资料 截取屏幕图像-VB资料 开机,自动更换墙纸 -VB资料 控制PC喇叭 -VB资料 利用VB测声卡 事务日至到底有什么用呀? 两个线程共同调用一个静态函数,如何在一个线程调用的时候,阻塞另一线程的调用? 定制控件可不可以使用用户控件作为子控件? 我的困惑,一个值得深思的问题 存储过程,我再加一个参数@sessionuser char(8),在调用该存储过程时,我如何把参数传给sp_querycard? 如何实现页面剪切? hot, hot, hot! 有关Java Swing的编程问题 两个线程共同调用一个静态函数,如何在一个线程调用的时候,阻塞另一线程的调用? 如何将程序做成服务的形势,如何调用,有没有这样的实例啊 如何在2000下進行命令行撥號 打印问题请教!!急!!! 來取分關於weblogic7 俺也灌一次水: 45/59 = ? 一个关于处理WORD文档的问题? 喜欢许巍 的请进来 不通过DataSource 如何给DataGrid 的DataGridBoolColumn列赋值?(在线等待中...) 谁有MicroStation BASIC开发语言参考中文版 请问:如何通过JAVA程序访问Web页面? Win2000的最小安装需要多少容量?快抢分啦! 如何将一个table从原来的tablespace移到另一个tablespace 计算一个月有几周,星期一为第一天,相关语句 骆驼您好,刚才没看到你的回贴的时候,那个贴我已经结贴了,我还有问题请教,请进,多谢。 请问哪里有VTune Profiler下载?据说它能分析VC代码中各函数所占用的开销 请问如何在ftp上收发xml文件。。。请具体点告诉我或贴源码或贴相关文章地址 文件解析 VC的OPENGL编程显示提示框时,显示内容是以前绘图的,不是最新绘图的,怎么办? 请问为什么create table bbb as select * from aaa ,aaa上面的缺省值还有索引都掉了呢? 如何在数据库里存文本文件? 用什么工具可以查看内存是否有泄露, Win2000上是什么, Win98上是什么 为什么用oledbadapter不能更新数据库阿? 软件陷阱问题 请问哪里有VTune Profiler下载?据说它能分析VC代码中各函数所占用的开销 在weblogic7.0上面jsp文件运行问题 请教关于打印遇到的问题 谁能个--报表例子(水晶报表。vb.net)--报表的数据源要是动态生成的。 利用WMI管理WINDOWS 请教:如何在chm帮助文件中执行应用程序。谢谢 Weblogic+Mysql的Jsp/Java程序的数据库该怎样连接?? 在java代码中引用php的变量?请问如何写? tclientdataset问题 急!!!!VFP触发器取值问题 怎么样才能卸载REDHAT8.0下的XMMS,而装7.3下的XMMS? 请教一个有关于对话框上控件重画的问题!谢谢! 有谁知道上海高程查分方法?急!!! 请教OleDbDataReader的用法 请教一个有关于对话框上控件重画的问题!谢谢! 请教一个简单问题,显示图形滞后的问题,有人回答过,但不正确。谢谢 大家有没有见过IIS不支持数据库的? 1700--2100 之间的手机,请大家帮我推荐一下,在NOKIA,MOTOROLA,厦新,波导……中选择!! 请问谁有?divx的资料?能提供下载也行! 请问如何把从数据库中读出来的数据显示在在线编辑器里? 上海:樱花树下旗袍秀 风情pk清纯各彭丽媛参观俄罗斯孤儿学校:代表母亲来“炒房客”撤离 温州楼市“高台跳水”上海首创在废弃深坑建五星级酒店长沙“落井”女孩仍无音讯 居民称事发四川白富美开20多万越野车卖凉面 自图片纪实:广东一个吸毒者生命的最后1四川中学女生扮甄嬛 高呼“要嫁就嫁清父亲为10岁儿子献骨髓 嘱咐医生“多媒体调查代孕机构:生男孩120万 男上海男子杀害两亲属 又砍伤多名小学生高一男生寝室照走红网络 打造成“小资台湾宜兰罕见冷泉寻找代言人 可获奖金温州市委秘书长吴开锋被曝有婚外情 2钓鱼台国宾馆选拔服务人员 阵势犹如选香港举行“枕头大战”场面壮观习近平在海南会见多国总统 彭丽媛出席8岁男孩娶61岁老妇 南非男孩为已去窦靖童on the beach素颜自丽江大火铺天盖地 彩云之南遍地狼藉(郑州一超市女售货员被劫持 劫匪被控制【观点】九个企业家眼中的2014 全球最顶级的餐厅盘子出自谁手?券商影响力哪家强?海通策略会带动金融设计师必看:土豪最爱的时装设计师券商互联网金融驶进深水区如此“颜值”与“内涵”并存的微信号,赏色丨麦当娜《Interview M荐号 | 从明天起 ,一大波微信领袖狼真的来了 明年中国每个行业都将洗牌从男神到大叔,【朱孝天】经历了什么?2014证券行业互联网化研究报告(3牛人的28平方时尚风梦想之家!榜单丨国家评论协会奖颁奖;奥斯卡纪录明明可以靠实力,却偏偏不走心 | 比《太平轮(上)》对不起,跑偏了合婚,让你婚姻状况早知道!【守护女性尊严】印度女人示范,为什么印度终于免签啦!这里才是遗落在人间的【注意!】十大致命错误,面膜越敷越老从命理看你的八字有没有财,有偏财还是黄兴文:关掉公司,趁还来得及!(房地
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘