vb检测html事件,VB代码VB小程序:捕获 WebBrowser 控件的鼠标事件
49. 捕獲 WebBrowser 控件的鼠標(biāo)事件
VB 的網(wǎng)頁(yè)瀏覽控件 WebBrowser 沒(méi)有 MouseDown、MouseMove、MouseUp 等鼠標(biāo)事件,要在程序中捕獲這些事件,必須另想辦法。本文使用注入 java 腳本的方法來(lái)捕獲控件的鼠標(biāo)事件。
另一更為有效的方法,可以捕獲 WebBrowser 眾多的鼠標(biāo)和鍵盤事件,如鼠標(biāo)坐標(biāo)、按下了鍵盤哪個(gè)鍵,以及鍵盤 Ctrl、Alt、Shift 鍵的狀態(tài)、當(dāng)前網(wǎng)頁(yè)元素的ID、索引等等。參見(jiàn)另一文章:VB 捕獲 WebBrowser控件的鼠標(biāo)和鍵盤事件
'以下代碼在 VB6 調(diào)試通過(guò)
'勾選部件:Microsoft Internet Controls,在窗體放置控件:WebBrowser1
'程序運(yùn)行后,在 WebBrowser1 內(nèi)移動(dòng)或按下鼠標(biāo),注意觀察窗口標(biāo)題欄給出的信息
'本人原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)源:http://hi.baidu.com/100bd/blog/item/19795a80b2ba61d5bd3e1ee1.html
Private Sub Form_Load()
Me.Caption = "WebBrowser 鼠標(biāo)事件例子"
WebBrowser1.Navigate "about:blank" '設(shè)置為空白頁(yè)或某網(wǎng)頁(yè),否則無(wú)法進(jìn)行鼠標(biāo)捕獲
'??? WebBrowser1.Navigate "http://www.baidu.com" '顯示百度首頁(yè)
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Me.Caption = "WebBrowser 鼠標(biāo)事件例子"
End Sub
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Dim nStr As String
nStr = URL
If Left(nStr, 8) <> "mouse://" Then Exit Sub '讓網(wǎng)頁(yè)正常跳轉(zhuǎn)
Cancel = True '讓網(wǎng)頁(yè)不要跳轉(zhuǎn)
Dim nMouse As String, x As Long, y As Long, S As Long
nStr = Mid(nStr, 9)
S = InStr(nStr, "|")
nMouse = Left(nStr, S - 1): nStr = Mid(nStr, S + 1)
S = InStr(nStr, "|")
x = Val(Left(nStr, S - 1)): y = Val(Mid(nStr, S + 1))
Me.Caption = nMouse & ":" & x & " " & y '顯示鼠標(biāo)捕獲的狀態(tài)
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
Dim js As String
'腳本:用于捕獲 鼠標(biāo)按下
js = "document.body.οnmοusedοwn=function()" & vbCrLf & _
"{location.href='mouse://down|'+window.event.x + '|'+window.event.y;}"
WebBrowser1.Document.parentWindow.execScript js, "javascript"
'腳本:用于捕獲 鼠標(biāo)移動(dòng)
js = "document.body.οnmοusemοve=function()" & vbCrLf & _
"{location.href='mouse://move|'+window.event.x + '|'+window.event.y;}"
WebBrowser1.Document.parentWindow.execScript js, "javascript"
'腳本:用于捕獲 鼠標(biāo)抬起
js = "document.body.οnmοuseup=function()" & vbCrLf & _
"{location.href='mouse://up|'+window.event.x + '|'+window.event.y;}"
WebBrowser1.Document.parentWindow.execScript js, "javascript"
End Sub
'本人原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)源:http://hi.baidu.com/100bd/blog/item/19795a80b2ba61d5bd3e1ee1.html
另一更為有效的方法,可以捕獲 WebBrowser 眾多的鼠標(biāo)和鍵盤事件,如鼠標(biāo)坐標(biāo)、按下了鍵盤哪個(gè)鍵,以及鍵盤 Ctrl、Alt、Shift 鍵的狀態(tài)、當(dāng)前網(wǎng)頁(yè)元素的ID、索引等等。參見(jiàn)另一文章:VB 捕獲 WebBrowser控件的鼠標(biāo)和鍵盤事件
總結(jié)
以上是生活随笔為你收集整理的vb检测html事件,VB代码VB小程序:捕获 WebBrowser 控件的鼠标事件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。