24小时热门版块排行榜    

查看: 2508  |  回复: 5

yhwsmile

金虫 (小有名气)

[交流] 【求助】怎么让vb程序运行结束后自动退出啊 已有5人参与

我用vb调用一个外部程序,我想在外部程序data_con.exe运行结束后,vb自动退出,请问怎么实现啊?谢谢各位大侠了~~~~

下面是代码:
Option Explicit
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Private Sub Form_Load()

Call Shell("data_con.exe", vbNormalFocus)

End Sub
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
resonant(金币+3):谢谢提供,一种方法评一分:-) 2010-10-22 19:24:07
方法1.
PID = Shell("data_con.exe",vbNormalFocus)
HANDLE = OpenProcess(PROCESS_ALL_ACCESS,0,PID)
WaitForSingleObject(HANDLE, INFINITE)
End

这样的话,data.con.exe退出之前,VB程序都是没有响应的。

方法2
做一个Timer,一直检查Process的ExitCode
Call GetExitCodeProcess(HANDLE,ExitCode)
if ExitCode <> STILL_ALIVE then End

这个方法用Timer比较土

方法3
Hook目标进程,当目标进程结束时,给VB程序发消息

这个方法用VB实现比较麻烦一点
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
2楼2010-10-22 17:00:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yhwsmile

金虫 (小有名气)

ajian04:谢谢参与交流~ 2010-10-23 19:54:14
引用回帖:
Originally posted by magic7004 at 2010-10-22 17:00:35:
方法1.
PID = Shell("data_con.exe",vbNormalFocus)
HANDLE = OpenProcess(PROCESS_ALL_ACCESS,0,PID)
WaitForSingleObject(HANDLE, INFINITE)
End

这样的话,data.con.exe退出之前,VB程序都是 ...

谢谢啊,每次都是你及时帮我解决~~~~
3楼2010-10-23 13:26:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

刘昭然

新虫 (小有名气)

加油!

学习啦,我是新手
4楼2010-12-11 08:43:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lwq911

新虫 (小有名气)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+2):谢谢参与应助,欢迎常来程序语言版! 2010-12-24 16:37:44
搞那么复杂啊,干什么啊!
Private Sub Command1_Click()
Dim ret As Integer
Call Shell("data_con.exe", vbNormalFocus)
end
End Sub
5楼2010-12-23 09:51:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sjh717142

新虫 (初入文坛)


余泽成(金币+1):欢迎交流! 2010-12-31 16:27:16
LS的,别人是程序结束后才退出,不是你的代码运行后就退出。

1楼的方法都不错。

还可以直接查找目标程序窗口,找不到就说明程序结束了,再自身退出。
Eddy Blog: www.rrgod.com
6楼2010-12-27 14:39:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yhwsmile 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见