打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB代码VB小程序: 捕获 WebBrowser控件的鼠标和键盘事件
VB 捕获 WebBrowser控件的鼠标和键盘事件
利用 Document 的 event 对象,可以捕获 WebBrowser 众多的鼠标和键盘事件的状态,如鼠标坐标、按下了键盘哪个键,以及键盘 Ctrl、Alt、Shift 键的状态、当前网页元素的ID、索引等等。
程序运行截图如下:
' ' '以下窗体代码在 VB6 调试通过
'在“工程/部件”的控件对话框中勾选:Microsoft Internet Controls
'在“工程/引用”对话框中勾选:Microsoft HTML Object Library
'然后再窗体放置控件:WebBrowser1
'程序运行后,在网页上移动、单击鼠标,或按下键盘某个键,注意窗体标题栏给出的信息
'本人原创,转载请注明来源:http://hi.baidu.com/100bd/blog/item/8c280b6cb6e9e3ed43169495.html
Private WithEvents ctDoc As MSHTML.HTMLDocument
Private Sub Form_Load()
WebBrowser1.Navigate "about:blank" '设置为空白页,否则 ctDoc = WebBrowser1.Document 会无效
Set ctDoc = WebBrowser1.Document
WebBrowser1.Navigate "http://www.baidu.com/"
End Sub
Private Sub Form_Resize()
On Error Resume Next
WebBrowser1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
End Sub
Private 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 Sub
Private 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
' 后记:本文只能捕捉主页面的有关事件,对网页包含的内嵌网页和框架无能为力。要捕捉内嵌网页和框架的有关事件,必须为每个网页定义一个捕捉事件,但 VB 的 WithEvents 语句并不支持定义数组事件。网上搜索也没有找到满意的解决方法,这个问题困扰了我很久。后来,终于自己找到解决方法了,修改后可以捕捉页面任何区域鼠标和键盘事件的代码,参见:捕获 WebBrowse 控件的鼠标和键盘事件(包含内嵌网页和框架)
'本人原创,转载请注明来源:http://hi.baidu.com/100bd/blog/item/8c280b6cb6e9e3ed43169495.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VB 解决webbrowser用IE弹出新窗口问题.
VB webbrowser 拦截弹出对话框并获取对话框信息
Implementing a PopUp blocker into a WebBrowse...
VB Winsock控件的使用与介绍
VB中使用PNG格式图片的一种新方法
【excel vba】使用WebBrowser直接加载网页在excel表中
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服