请教高手 用vb shell 先打开qq.exe 当qq.exe主动关闭的同时,如何让vb执行另外一个命令
用vb shell 先打开qq.exe 当qq.exe主动关闭的同时,如何让vb执行另外一个命令例如,我要实现 关闭qq.exe 的时候 打开 notepad.exe
或者,要实现 关闭的qq.exe 的时候,如何关闭已经打开的另外一个exe --------------------编程问答-------------------- 从进程中不断查找qq的句柄
如果不在了就是关闭了
然后执行其他的 --------------------编程问答-------------------- 搜索shellwait --------------------编程问答-------------------- 能帮忙写的详细点么 谢谢了。 业余玩这个很菜哦 谢谢了 --------------------编程问答-------------------- http://www.m5home.com/blog2/blogview.asp?logID=411&cateID=2 --------------------编程问答-------------------- 楼主可以先 shell qq.exe 获得QQ的进程 ID,然后每隔一断时间搜索这个ID一次,当没有这个ID了,就可以执行另外的命令了 --------------------编程问答--------------------
'窗体再添加一个计时器控件 Timer1--------------------编程问答-------------------- 谢谢 6楼哥哥的详细解释, 调试通过 --------------------编程问答-------------------- 用timer比较占资源,没有必要,完全可以用waitforsingleobject函数进行等待
Option Explicit
'声明检查进程ID是否有效的 API
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
Dim strQQ As String, qqPID As Long
Function InitProcessCheater(ByVal PID As Long, Optional lpProcessHandle As Long) As Boolean
'自写函数:已知进程 ID,验证 ID 有效性,获得进程句柄
Dim pHandle As Long
pHandle = OpenProcess(&H1F0FFF, False, PID)
If (pHandle = 0) Then
InitProcessCheater = False
lpProcessHandle = 0
Else
InitProcessCheater = True
lpProcessHandle = pHandle
pHandle = CloseHandle(lpProcessHandle)
End If
End Function
Private Sub Form_Load()
'设置计时器间隔为五十毫秒
Timer1.Interval = 50
'初始化设置计时器为不工作状态
Timer1.Enabled = False
'这是QQ可执行文件的地址,请楼主根据你的QQ目录进行更改
strQQ = "D:\Program Files\Tencent\QQ\QQ.exe"
End Sub
Private Sub Form_Click()
'单击窗口打开QQ,同时获得QQ的进程ID
qqPID = Shell(strQQ, vbNormalFocus)
'启动计时器
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
'验证 qqPID 是否有效
If InitProcessCheater(qqPID) = False Then
'qqPID 已无效,证明QQ已关闭,执行下面的命令
Shell "c:\windows\notepad.exe", vbNormalFocus
'qqPID 已无效,停止计时器的工作
Timer1.Enabled = False
End If
End Sub
http://topic.csdn.net/u/20080529/00/573e70c3-e6c5-43be-86da-8654e8fb841b.html
这个里面找shellex --------------------编程问答-------------------- 原来发链接需要另开一个窗口,麻烦呀~~~~~ --------------------编程问答-------------------- 楼主咋不给我加分啊??? --------------------编程问答-------------------- --------------------编程问答-------------------- 八楼的同志,执行您的shellex后VB写的程序会假死,直到shellex程序进程关闭才好 --------------------编程问答-------------------- 都是高手
收藏了 --------------------编程问答-------------------- 顶 --------------------编程问答--------------------
创建一个线程,用于等待...
补充:VB , 基础类