怎样才能知道用shell调用的应用程序已关闭

badboy168 2004-12-25 09:56:08
dim runs as long
runs=shell("word.exe",3)
当关闭WORD的时候有一个返回值,同过这个返回值这可以执行msgbox"word已关闭",请朋友们帮忙解决,3Q~!~!
...全文
187 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
韧恒 2004-12-25
  • 打赏
  • 举报
回复
To ": badboy168(坏小子) " 你试了吗?一定没有,要不然就不会说没有进行人工干预了。
tztz520 2004-12-25
  • 打赏
  • 举报
回复
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpExitCode As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Const PROCESS_QUERY_INFORMATION As Long = (&H400)
Private Const STILL_ACTIVE As Long = &H103


Sub ShellWait(FileName As String)
Dim hShell As Long
Dim hProc As Long
Dim lExit As Long
hShell = Shell(FileName, 3)
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
Do
GetExitCodeProcess hProc, lExit
DoEvents
Loop While lExit = STILL_ACTIVE
End Sub



Private Sub Command1_Click()
ShellWait "f:\word.exe"
MsgBox "运行完毕!"
End Sub
badboy168 2004-12-25
  • 打赏
  • 举报
回复
楼上的方法是通过comand1微记事本创建一个进程,穿件后直接关闭,中间没有人工干预过程,我的意思是说打开WORD要手动关闭,产生一个值返回给程序,程序再执行msgbox "WORD已关闭"
韧恒 2004-12-25
  • 打赏
  • 举报
回复

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 Const INFINITE = -1&
Private Const SYNCHRONIZE = &H100000

Private Sub Command1_Click()
Dim iTask As Long, ret As Long, pHandle As Long
iTask = Shell("notepad.exe", vbNormalFocus)
pHandle = OpenProcess(SYNCHRONIZE, False, iTask)
ret = WaitForSingleObject(pHandle, INFINITE)
ret = CloseHandle(pHandle)
MsgBox "结束"
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧