主要代码:
Option Compare Database
Option Explicit
Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteExA" (lpExecInfo As SHELLEXECUTEINFO) As Long
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 Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
Public Function RunProc(CommandLine As String) As Boolean
Dim ShellInfo As SHELLEXECUTEINFO
With ShellInfo
.cbSize = Len(ShellInfo)
.hwnd = GetDesktopWindow
.lpVerb = "open"
.lpFile = CommandLine
.nShow = vbNormalFocus
.fMask = 64
End With
ShellExecuteEx ShellInfo
If ShellInfo.hInstApp <= 32 Then
MsgBox "无法打开" & CommandLine & "!", vbOKCancel + vbExclamation, "运行错误"
RunProc = False
Else
Sleep 1000
WaitForSingleObject ShellInfo.hProcess, 99999999
CloseHandle ShellInfo.hProcess
RunProc = True
End If
End Function
下载附件:
点击下载此附件
图片演示: