在网上找到的.
可以指定目标EXE的运行目录,进程优先级,启动方式(最大化最小化等),以及进程句柄(hProcess)和Pid等
tQG0FDde.bas
(3.06 KB, 下载次数: 18051)
也可以使用这个,一样能挂起执行,但还能做别的事:
- Option Explicit
- '*************************************************************************
- '**模 块 名:ModShellEx
- '**说 明:增强SHELL函数
- '**创 建 人:马大哈
- '**描 述:紫水晶工作室 http://www.m5home.com/
- '**日 期:2007年4月24日
- '**版 本:V1.0
- '*************************************************************************
- Private Declare Function GetProcessVersion Lib "kernel32" (ByVal ProcessId As Long) As Long
- Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
- Public Function ShellEx(ByVal FileName As String, Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus, Optional ByVal DelayTime As Long = -1) As Long
- '与SHELL函数一样的参数,不过是阻塞执行.(同步)
- 'FileName - 目标文件名
- 'WindowStyle - 程序运行时窗口的样式
- 'DelayTime - 等待的时间,单位为ms
- '备注:
- ' DelayTime设置为-1时表示一直等待,直到目标程序运行结束
- Dim I As Long, J As Long
-
- I = Shell(FileName, WindowStyle)
- ShellEx = I
- Do
- If GetProcessVersion(I) = 0 Then Exit Do '目标进程退出时跳出
- Sleep 10
- J = J + 1
- DoEvents
- If DelayTime <> -1 And J > DelayTime \ 10 Then Exit Do '非永远等待+等待时间达到时跳出
- Loop
-
- End Function
复制代码[此贴子已经被作者于2006-9-6 13:46:30编辑过] |