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

Access培訓(xùn)群:792054000         Excel免費(fèi)交流群群:686050929          Outlook交流群:221378704    

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

微信交流群(請(qǐng)用微信掃碼)

        

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

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

注意,PostMessage是馬上返回,而SendMessage則會(huì)等待執(zhí)行完成后才返回

確實(shí)遇到過(guò)用sendMessage發(fā)送消息時(shí)有時(shí)候?qū)懙能浖ㄗ×? 用PostMessage就可以  


'用類似的方法可以實(shí)現(xiàn)類似游戲外掛或修改器的軟件,或其它模擬鼠標(biāo)功能的軟件 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
'鼠標(biāo)按下
Const WM_LBUTTONDOWN = &H201
'鼠標(biāo)彈出
Const WM_LBUTTONUP = &H202
'鼠標(biāo)雙擊
Const WM_COMMAND = &H203
 
Private Sub Command1_Click()
Dim lngHWnd1 As Long, lngHWnd2 As Long
 
lngHWnd1 = FindWindow(vbNullString, "你要控制窗體的標(biāo)題")
  If lngHWnd1 <> 0 Then
  lngHWnd2 = FindWindowEx(lngHWnd1, 0, vbNullString, "里面窗體或控件的標(biāo)題")
   
  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
移動(dòng)訪問