定位點擊WebBrowser、點擊Flash、偷菜外掛

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'webbrowser 不能收到SendMessage的消息
'主要是因爲webbrowser 的句柄找不到。經過努力搜索,終於解決了。做個記錄.
Private Declare Function PostMessageLib "user32"Alias "PostMessageA"(ByVal hwnd As Long,ByVal wMsg AsLong, ByValwParam As Long, ByVal lParam As Long)As Long
Private Declare Function SendMessageLib "user32"Alias "SendMessageA"(ByVal hwnd As Long,ByVal wMsg AsLong, ByValwParam As Long, lParam AsAny) As Long
Private Declare Function FindWindowLib "user32"Alias "FindWindowA"(ByVal lpClassName As String,ByVal lpWindowName As String)As Long
Private Declare Function FindWindowExLib "user32"Alias "FindWindowExA"(ByVal hWnd1 As Long,ByVal hWnd2 As Long,ByVal lpsz1 As String,ByVal lpsz2 As String)As Long
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Const MK_LBUTTON = &H1
'獲得webbrowser的句柄
Public Function GetBrowserWindow(窗體句柄 AsLong) AsLong
    DimhwndPeer As Long
    hwndPeer = FindWindowEx(窗體句柄, 0,"Shell Embedding", vbNullString)'網上很多幫助就找到這裏就結束了,那是不能收到消息的。
    hwndPeer = FindWindowEx(hwndPeer, 0,"Shell DocObject View", vbNullString)
    hwndPeer = FindWindowEx(hwndPeer, 0,"Internet Explorer_Server", vbNullString)
'如果需要點擊Flash,則需要加上hwndPeer = FindWindowEx(hwndPeer, 0, "MacromediaFlashPlayerActiveX", vbNullString)
    GetBrowserWindow = hwndPeer
End Function
'按鈕單擊 
Private Sub 命令_Click()
    Dimt As String, x AsLong, y AsLong, w AsWebBrowser, wbhwnd AsLong, k AsLong
    x = 537'從WebBrowser控件左上角起0,0,座標不是平時left、right、top、height那個座標,可以直接複製控件到畫圖裏面,看分辨錄。
    y = 44 * &H10000'弄成高位
    wbhwnd = GetBrowserWindow(Form1.hwnd)
    k = PostMessage(wbhwnd, WM_LBUTTONDOWN, MK_LBUTTON,ByVal ((y) + x))
    k = PostMessage(wbhwnd, WM_LBUTTONUP, 0, (x + (y)))
End Sub
'測試通過。
分類: VB6
發佈了1 篇原創文章 · 獲贊 3 · 訪問量 3793
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章