Option Compare Database Option Explicit Const PROCESS_ALL_ACCESS = &H1F0FFF Const SYNCHRONIZE = &H100000 Const INFINITE = &HFFFFFFFF ' Infinite timeout #If VBA7 Then 'http://msdn.microsoft.com/ja-jp/library/cc429427.aspx Declare PtrSafe Function WaitForSingleObject Lib "kernel32" ( _ ByVal hHandle As LongPtr, _ ByVal dwMilliseconds As Long _ ) As Long 'http://msdn.microsoft.com/ja-jp/library/cc429278.aspx Declare PtrSafe Function OpenProcess Lib "kernel32" ( _ ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long _ ) As LongPtr 'http://msdn.microsoft.com/ja-jp/library/cc429605.aspx Declare PtrSafe Function CloseHandle Lib "kernel32" ( _ ByVal hObject As LongPtr _ ) As Long #Else Declare Function WaitForSingleObject Lib "kernel32" ( _ ByVal hHandle As Long, _ ByVal dwMilliseconds As Long _ ) As Long Declare Function OpenProcess Lib "kernel32" ( _ ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long _ ) As Long Declare Function CloseHandle Lib "kernel32" ( _ ByVal hObject As Long _ ) As Long #End If Sub test() Dim taskID #If vba7 Then Dim pHwnd As LongPtr #Else Dim pHwnd As Long #End If taskID = Shell("calc.exe") pHwnd = OpenProcess(SYNCHRONIZE, False, taskID) WaitForSingleObject pHwnd, INFINITE CloseHandle pHwnd Debug.Print "Process End" End Sub
2010/11/23
office2010 Win32API WaitForSingleObject/OpenProcess/CloseHandle
ラベル:
access 2010,
API,
MS-Access,
Office 2010,
VBA
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿