'这样 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 LonghShell = Shell(FileName, vbNormalFocus) hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell) Do GetExitCodeProcess hProc, lExit DoEvents Loop While lExit = STILL_ACTIVE End Sub Private Sub Command1_Click() ShellWait App.Path + "\" + "*.exe" '直到执行完上面的程序才会执行下面的 Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\" & "*.txt"End Sub
(标志也可放在注册表中)
我的是苯办法
Shell App.Path + "\" + "*.exe"
Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\" & "*.txt"
就是将"*.exe"保存在"*.txt"中的计算结果显示出来,可是*.exe计算时间稍长,结果要么显示错误,要么显示以前的结果。
我是个新手,高人能说的详细点吗?多谢!
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 LonghShell = Shell(FileName, vbNormalFocus)
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
Do
GetExitCodeProcess hProc, lExit
DoEvents
Loop While lExit = STILL_ACTIVE
End Sub
Private Sub Command1_Click()
ShellWait App.Path + "\" + "*.exe"
'直到执行完上面的程序才会执行下面的
Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\" & "*.txt"End Sub