VB 捕获 WebBrowser控件的鼠标和键盘事件http://hi.baidu.com/100bd/blog/item/8c280b6cb6e9e3ed43169495.html这里这篇文章,可以实现 鼠标在网页上面移动,显示元素的状态。现在我要问,如果网页中鼠标所在的地方是框架,就失效了。
怎么样用下面的代码修改一下,实现。自动对网页中所以框架适用, 实时得到 鼠标移动信息,元素信息。
--------------------
' '以下窗体代码在 VB6 调试通过
'在“工程/部件”的控件对话框中勾选:Microsoft Internet Controls
'在“工程/引用”对话框中勾选:Microsoft HTML Object Library
'然后再窗体放置控件:WebBrowser1
'程序运行后,在网页上移动、单击鼠标,或按下键盘某个键,注意窗体标题栏给出的信息
'本人原创,转载请注明来源:http://hi.baidu.com/100bd/blog/item/8c280b6cb6e9e3ed43169495.html
Private WithEvents ctDoc As MSHTML.HTMLDocumentPrivate Sub Form_Load()
WebBrowser1.Navigate "about:blank" '设置为空白页,否则 ctDoc = WebBrowser1.Document 会无效
Set ctDoc = WebBrowser1.Document
WebBrowser1.Navigate "http://www.baidu.com/"
End SubPrivate Sub Form_Resize()
On Error Resume Next
WebBrowser1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
End SubPrivate Sub ctDoc_onmousemove()
EventsHTML
End Sub
Private Sub ctDoc_onmousedown()
EventsHTML
End Sub
Private Sub ctDoc_onmouseup()
EventsHTML
End Sub
Private Function ctDoc_onkeypress() As Boolean
EventsHTML
End Function
Private Sub ctDoc_onkeydown()
EventsHTML
End Sub
Private Sub ctDoc_onkeyup()
EventsHTML
End SubPrivate Sub EventsHTML()
Dim nEvent As String, X As Long, Y As Long
X = ctDoc.parentWindow.event.clientX '鼠标 x 坐标位置(像素)
Y = ctDoc.parentWindow.event.clientY '鼠标 y 坐标位置(像素)
nEvent = ctDoc.parentWindow.event.Type '事件名称,如:MouseDown、MouseMove、MouseUp、KeyPress 等
nEvent = nEvent & ":" & X & "," & Y
nEvent = nEvent & " Button=" & ctDoc.parentWindow.event.button '按下了鼠标那个键
nEvent = nEvent & " keyCode=" & ctDoc.parentWindow.event.keyCode '键盘编码
' nEvent = nEvent & " Ctrl=" & ctDoc.parentWindow.event.ctrlKey '键盘 Ctrl 键的状态
' nEvent = nEvent & " Alt=" & ctDoc.parentWindow.event.altKey '键盘 Alt 键的状态
' nEvent = nEvent & " Shift=" & ctDoc.parentWindow.event.shiftKey '键盘 Shift 键的状态
On Error Resume Next
nEvent = nEvent & " 元素=" & ctDoc.parentWindow.event.srcElement.tagName
nEvent = nEvent & " 索引=" & ctDoc.parentWindow.event.srcElement.sourceIndex
nEvent = nEvent & " ID=" & ctDoc.parentWindow.event.srcElement.id
Me.Caption = nEvent
End Sub
怎么样用下面的代码修改一下,实现。自动对网页中所以框架适用, 实时得到 鼠标移动信息,元素信息。
--------------------
' '以下窗体代码在 VB6 调试通过
'在“工程/部件”的控件对话框中勾选:Microsoft Internet Controls
'在“工程/引用”对话框中勾选:Microsoft HTML Object Library
'然后再窗体放置控件:WebBrowser1
'程序运行后,在网页上移动、单击鼠标,或按下键盘某个键,注意窗体标题栏给出的信息
'本人原创,转载请注明来源:http://hi.baidu.com/100bd/blog/item/8c280b6cb6e9e3ed43169495.html
Private WithEvents ctDoc As MSHTML.HTMLDocumentPrivate Sub Form_Load()
WebBrowser1.Navigate "about:blank" '设置为空白页,否则 ctDoc = WebBrowser1.Document 会无效
Set ctDoc = WebBrowser1.Document
WebBrowser1.Navigate "http://www.baidu.com/"
End SubPrivate Sub Form_Resize()
On Error Resume Next
WebBrowser1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
End SubPrivate Sub ctDoc_onmousemove()
EventsHTML
End Sub
Private Sub ctDoc_onmousedown()
EventsHTML
End Sub
Private Sub ctDoc_onmouseup()
EventsHTML
End Sub
Private Function ctDoc_onkeypress() As Boolean
EventsHTML
End Function
Private Sub ctDoc_onkeydown()
EventsHTML
End Sub
Private Sub ctDoc_onkeyup()
EventsHTML
End SubPrivate Sub EventsHTML()
Dim nEvent As String, X As Long, Y As Long
X = ctDoc.parentWindow.event.clientX '鼠标 x 坐标位置(像素)
Y = ctDoc.parentWindow.event.clientY '鼠标 y 坐标位置(像素)
nEvent = ctDoc.parentWindow.event.Type '事件名称,如:MouseDown、MouseMove、MouseUp、KeyPress 等
nEvent = nEvent & ":" & X & "," & Y
nEvent = nEvent & " Button=" & ctDoc.parentWindow.event.button '按下了鼠标那个键
nEvent = nEvent & " keyCode=" & ctDoc.parentWindow.event.keyCode '键盘编码
' nEvent = nEvent & " Ctrl=" & ctDoc.parentWindow.event.ctrlKey '键盘 Ctrl 键的状态
' nEvent = nEvent & " Alt=" & ctDoc.parentWindow.event.altKey '键盘 Alt 键的状态
' nEvent = nEvent & " Shift=" & ctDoc.parentWindow.event.shiftKey '键盘 Shift 键的状态
On Error Resume Next
nEvent = nEvent & " 元素=" & ctDoc.parentWindow.event.srcElement.tagName
nEvent = nEvent & " 索引=" & ctDoc.parentWindow.event.srcElement.sourceIndex
nEvent = nEvent & " ID=" & ctDoc.parentWindow.event.srcElement.id
Me.Caption = nEvent
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货