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 PostMessage Lib
"user32" Alias
"PostMessageA" ( ByVal
hwnd As
Long , ByVal
wMsg As Long ,
ByVal wParam
As Long ,
ByVal lParam
As Long ) As
Long Private
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 Const
WM_LBUTTONDOWN = &H201 Const
WM_LBUTTONUP = &H202 Const
MK_LBUTTON = &H1 '獲得webbrowser的句柄 Public
Function GetBrowserWindow(窗體句柄 As Long )
As Long Dim hwndPeer
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() Dim t
As String , x
As Long , y
As Long , w
As WebBrowser, wbhwnd
As Long , k
As Long 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 '測試通過。 |
定位點擊WebBrowser、點擊Flash、偷菜外掛
分類:
VB6
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.