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

如何判定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

验证码识别基础方法及C#/.NET源码 傲逆软件CEO周鲁:核心游戏精神,在移动游戏创作中传承 Kim Dotcom推出新文件存储服务平台Mega 用户数一天达百万 美FCC:希望全美在2015年部署千兆以太网 iOS和Android双平台:帷千动媒SDK 3.0发布 移动周报:2013年移动App设计13大精髓 构建高可扩Web架构和分布式系统实战(下) API设计的十大最差和五大最佳实践 Hadoop:为什么RAID-0不行? 电子前沿基金会:实现互联网自由需翻越5座大山 安全无小事:2013年最令人期待的15家安全公司 移动电商:更喜欢用HTML5代替原生APP Talkingdata行业预警:移动游戏正在变成红海 微软无视W3C 拒绝遵循WebRTC标准 Linux下使用MongoDB+GridFS实现备份作业的优化和监视 AWS建新数据中心 老用户获益不易 铜导线退出历史舞台 激光传导速度将达100G bps 大众点评推出首个O2O开放者平台:高德、盛大加入 从APM角度上看:NoSQL和关系数据库并无不同 新浪微博商业化:大树底下真的好乘凉吗? 亲爱的GitHub,我们怎么访问不了你? 经典神作《魂斗罗》iOS版今日上线 专访最强夫妻店:“神庙逃亡2”开发背后的故事 我们做错了什么?3周了,一毛钱也没赚到! 开源产品系列:简单强大的模板语言JSON Template 十年历史的KDE bug修复 为什么函数式编程在Java中很危险? Android平台获X11协议支持,手机变身绘图板 Rackspace通过OpenStack和定制OCP服务器节省40%成本 美国人是如何利用大数据的应用来防止流感的蔓延 W3C北航总部成立:招兵买马增强中国标准声音 请问如何在vb中截获消息 请问:在Windows98和Windows2000下支持的Winsock客户端套接字连接的最大个数分别是多少? 黑客软件 还是COM接口问题 大虾,帮个忙,一个小问题先谢谢!! 关于多次搜索的一个问题,大家都来看看啦!!!!!! 绘图仪的驱动程序 跳转至某一页应该怎么做? 强烈要求CSDN恢复‘帖子提前连接’功能,请帮忙UP! C++builder 中怎么判断某一个字符在不在字符串中? 求教:为什么我的控件下载特别慢?(在网页中用的控件,客户端浏览时下载) 明年毕业,想搞软件开发,现在很矛盾,是去大公司,还是去那种中小型的软件公司呢???? 求教有开发经验的高手关于XML和数据库的简单问题 查找窗口疑问 delphi的createoleobject 一个很急的问题??? 我怎么覆盖派生类中的virtual成员函数?(up加分,详情请入内) 寻找用过JMAIL的同志! 想问一下,在收邮件时,如何取得发件人的MAIL呢? 请问像大虾们说的comp.lang.c++.moderated这样的讨论组怎么访问?(Solstice) 简单问题:关于paradox数据库 进销存的问题 高分寻找ZIP密码破解高手! 请问有没有能通过Modem发送传真的控件? >>>>树状层次关系的算法? 怎样检测机子里有没有我指定的字体,如果没有并安装,谢谢 如何动态配置站点??? seek 函数??? 谁能帮我破解些ZIP密码! DB高手请看看:逐级缩小搜索范围的一个问题,大家都来看看啦!!!!!! C# 完全手册 中文版电子书 神经网络 TADOConnect与SQLserver连接 WINS 几问 为什么BCB的自动弹出属性和方法提示速度那么慢? 请问那里能下载JBUILD6?????// 怎样用程序打开TADOConnection 的ConnectionString 设置窗体 键盘钩子?????,有实例或文档吗????? 低手问题? 大家碰到这样的问题吗? 各位,那里有d3d的教程? 从ca365下载了一个免费根证书(rootca.cer),却无法在本地计算机上安装,help! peihexian的程序发短信的一文中,程序所发的数据包 请问web service到底是个什么东西?谢谢 callingda(林丁) 来拿分30 哪位能提供一个图书管理的VB源码给我参考? yzqb()发工资了47分 请教一个问题,编译不通过,不知是什么错误。 帮帮忙!神经网络 vb 中打印机如何检测? 假如用户正在使用别的软件,如何自动使我的程序获得焦点 批量转移数据 SQL 移民美国后是美国公民吗请问如果办理移民到美国后,是不是就是美国公民了? 1、美国政治文化以一套核心理想为中心,这些理想不包括以下哪一项:A 作为官方语言的英语B 自由C 自治D 平等2、与欧洲民主国家的公民相比,美国人:A 强调个人主义B 觉得生活的成功取决于 1.测定水的硬度时在配置pH=10的缓冲溶液时,为什么可以用被测物质镁的EDTA盐2.EDTA含有4个羧基,为什么与钙镁仅以1:1络合3.测水硬度时,在配置钙标准溶液时,为什么不直接用氯化钙配置,而用碳 2012地球将进入四维空间? 怎样办理美国公民的兄弟姐妹移民美国 英国,美国,德国政治的各自特点,历史题目 实验室要配置500g百分之十的盐酸溶液,需百分之三十八的盐酸(密度1.84g/ml)多少毫升?需水多少毫升 为什么滴定Ca2+、Mg2+总量时要控制ph=10,而滴定Ca2+分量时要控制ph=12-13? 智商170.【美国人类研究中心权威试题】找规律,填数字,这是一个4*4的正方形5 ,3,8,712,15,49,563 ,9,4,1218,27,36, 用天平测装满水的烧杯总质量210克把石子放入装满水的烧杯中,从杯中溢出水的质量为20克.剩余水与石头及烧的总质量为240克,求石头的密度. 求用EDTA滴定液(0.01mol/L)滴定同浓度的Mg2+溶液的最低pH.如何控制pH 镁离子-EDTA能够提高滴定终点敏锐度的原理. 米勒进行的模仿原始地球条件和原始大气成分的实验,最先(看清题目)证明了( ) EDTA返滴定测锡含量,如何控制PHEDTA解蔽络合法:6滴二甲酚橙指示剂,用标准Zn+2溶液滴定过量的EDTA,至由黄变红,变红是因为ZN和二甲酚橙指示剂反应,此时ZN已经称取标准品60mg,试品100 mg于锥形 1.简述EDTA滴定的原理与操作.2.如何配置EDTA溶液?3.如何用EDTA滴定法测定水的硬度? 用密度为ρ1g/cm3,质量分数是ω的浓盐酸,配制成体积比为1:4的稀盐酸,密度为ρ2g/cm3,则所配制稀盐酸的 为什么滴定Ca2+、Mg2+总量时要控制pH≈10,而滴定Ca2+分量时要控制pH为12~13?若PH >13时测定Ca2+对结果 用EDTA直接滴定有色金属离子(M),终点时所呈现的颜色( )A.游离指示剂In的颜色 B.MY的颜色\x05C.MIn的颜色 D.A与B的混合颜色选哪个?. 为测定一石块的密度,某同学用天平测得装满水的烧杯总质量为210g,把小石块放入装满水的烧杯中,已出水的质量为20g,剩余水、烧杯、石块总质量为240g,求石块的密度(请详细说明) 建筑50线怎么放,以什么为基准 人体消化系统由什么组成? 测量铅酸蓄电池原液硫酸和水比例的 “比重计”哪里有卖的?最好是电子的比重计.液体的也行. 中国和美国国土面积差不多大 为什么美国人口要比中国人口少的多 人体的消化系统主要由( )和( )组成,完成人体的( )和( )功能? 电子比重计价格 地球面积.人口的信息? 为什么越来越多的人说美国是人类的前途与希望 米勒实验说明原始地球能形成A、构成生物的 B、构成生物的大分子有机物D、原始海洋 地球的面积和人口是多少?我要的是是现在的,精确点. 构成人体消化系统的结构层次是? 电子比重计如何进入称重模式DH-300型的 建筑上的50线是什么意思? 用二甲酚橙作指示剂,以EDTA直接滴定Pb2+、Zn2+等离子时,终点应由 色变为 色. 米勒模拟原始地球的试验装置中,冷却器有什么作用冷却器模拟什么?有何作用? 建筑工程施工中50线什么意思有什么作用50线是从正负0上引用来控制楼层的标高线和木工可以以50线为程度点上反找梁底和板底的标高线和 怎么知道过去分词作后置定语 请高手介绍一下橡胶sbs的性质和用途 建筑工程中的“50线”是什么意思?请说的明确一些~最好是用自己的话,通俗易懂的. 过去分词如何做后置定语?它和被动语态有何区别? 橡胶配合剂:硫化体系、补强填充体系、软化增塑体系、防老体系的主要品种配合方法、特性、用途及使用方法. 一种不纯的铁,已知它含有Cu Al Ca或Mg中的一种或几种杂质,5.6g这样的铁跟足量的稀硫酸反应时生成0.2g则该铁中一定含有ACuBmGcAlDCa为请说明理由, 过去分词做后置定语,和被动语态分不开 配制EDTA溶液时,为什么要加入少量的镁离子?它对测定有无影响,为什么? 在含有大量Mg Al Ca Cu 离子的溶液中,加入Fe,不会和Fe反应的是? edta滴定时,为什么要用铬黑T和甲基红两种混合指示剂 配制EDTA溶液时,为什么要加入少量镁离子? 用EDTA滴定含有少量Fe³+的Ca²+、Mg²+试液时,用三乙醇胺、KCN都可以掩蔽Fe³+,抗坏血酸则不能掩蔽;在滴定有少量Fe³+存在的Bi³+时恰恰相反,即抗坏血酸可以掩蔽Fe³+而三乙 生物对环境的影响1、植被_____空气湿度.2、蚯蚓______、_______ 10分钟内回答、时间过后不给分另加一题.在光对鼠妇的影响的实验中,根据提出的问题和假设,应该设计形成对照的环境【阴暗和明 建筑50线我知道控制标高…但是具体的不知道谁能告诉我 混凝土打到离50线多少的距离 钢筋绑到离50线的距离 模板支到离50线多少的距离 谢谢了… 人体消化系统由哪些组成? 过去分词作后置定语与被动语态的区别 怎么引结构50线比如一层4.2米,只给个正负零,怎么引至二楼变成结构50线, 人体的消化系统1 温度计是如何测试温度的 用EDTA滴定金属离子M时,有时要加入掩蔽剂X来掩蔽干扰离子N,则掩蔽剂必须符合Knx Kny和Kmx Kmy以及掩蔽剂本身须 . EDTA络合滴定的指示剂有哪些 都分别指示哪些金属离子 估计被测物的温度,选择什么温度计 男朋友要移民,成为美国公民我男朋友现在高1,8月就去美国了,他说他过俩年就转美国公民,我们有没有可能啊,我也想去美国,是考sat好还是上了大一再去好呢,我觉得越早去越好,但是sat我听说相 简述人体消化系统的组成和功能 估计被测物的温度,选择( )的温度计.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn