office交流網(wǎng)--QQ交流群號及微信交流群

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請用微信掃碼)

        

VBA調(diào)用Sendmessage或PostMessage來模擬鼠標單擊按鈕事件

2017-09-10 18:30:00
zstmtony
原創(chuàng)
19320

註意,PostMessage是馬上返迴,而SendMessage則會等待執(zhí)行完成後纔返迴

確實遇到過用sendMessage髮送消息時有時候?qū)懙能浖ㄗ〔t  用PostMessage就可以  


'用類似的方法可以實現(xiàn)類似遊戲外掛或修改器的軟件,或其牠模擬鼠標功能的軟件 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 SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
'鼠標按下
Const WM_LBUTTONDOWN = &H201
'鼠標彈齣
Const WM_LBUTTONUP = &H202
'鼠標雙擊
Const WM_COMMAND = &H203
 
Private Sub Command1_Click()
Dim lngHWnd1 As Long, lngHWnd2 As Long
 
lngHWnd1 = FindWindow(vbNullString, "你要控製窗體的標題")
  If lngHWnd1 <> 0 Then
  lngHWnd2 = FindWindowEx(lngHWnd1, 0, vbNullString, "裡麵窗體或控件的標題")
   
  If lngHWnd2 <> 0 Then
  SendMessage lngHWnd2, WM_LBUTTONDOWN, 0&, 0&
  SendMessage lngHWnd2, WM_LBUTTONUP, 0&, 0&
   
  End If
  Else
  lngHWnd2 = 0
  End If
End Sub
分享
文章分類
聯(lián)繫我們
聯(lián)繫人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動訪問