' 启动一个计算器,下面的代码自动按“6”Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function GetDlgCtrlID Lib "user32" (ByVal hwnd As Long) As LongPrivate Const WM_COMMAND = &H111 Private Const BN_CLICKED = 0Private Sub Command1_Click() Dim Handle As Long Dim ParentHandle As Long ParentHandle = FindWindow("SciCalc", "计算器") Handle = FindWindowEx(ParentHandle, 0&, "Button", "6") SendMessage ParentHandle, WM_COMMAND, (BN_CLICKED * &H10000) Or GetDlgCtrlID(Handle), Handle End Sub
Private Const WM_KEYDOWN = &H100
Private Const VK_RETURN = &HDPostMessage hWindowEx, WM_KEYDOWN, VK_RETURN, 0
'或 SendMessage hWindowEx, WM_KEYDOWN, VK_RETURN, 0
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetDlgCtrlID Lib "user32" (ByVal hwnd As Long) As LongPrivate Const WM_COMMAND = &H111
Private Const BN_CLICKED = 0Private Sub Command1_Click()
Dim Handle As Long
Dim ParentHandle As Long
ParentHandle = FindWindow("SciCalc", "计算器")
Handle = FindWindowEx(ParentHandle, 0&, "Button", "6")
SendMessage ParentHandle, WM_COMMAND, (BN_CLICKED * &H10000) Or GetDlgCtrlID(Handle), Handle
End Sub