Option Explicit Private Const WAIT_INFINITE = -1& Private Const SYNCHRONIZE = &H100000 Private Declare Function OpenProcess Lib "kernel32" _ (ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long 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 Sub Command1_Click() Dim hProcess As Long Dim taskId As Long Dim cmdline As String cmdline = "notepad.exe" taskId = Shell(cmdline, vbNormalFocus) hProcess = OpenProcess(SYNCHRONIZE, True, taskId) Call WaitForSingleObject(hProcess, WAIT_INFINITE) CloseHandle hProcess MsgBox "调用的程序结束." End Sub
当shell结束后执行其他的操作
最新推荐文章于 2025-12-04 19:05:33 发布
本文提供了一个使用VBA进行进程同步的示例代码。通过OpenProcess、WaitForSingleObject和CloseHandle等API函数,实现了对Notepad进程的创建、等待直至其结束的功能。此示例展示了如何利用Windows API来实现进程间的同步。
1万+

被折叠的 条评论
为什么被折叠?



