vb检测html事件,VB代码VB小程序:捕获 WebBrowser 控件的鼠标事件

49. 捕获 WebBrowser 控件的鼠标事件

VB 的网页浏览控件 WebBrowser 没有 MouseDown、MouseMove、MouseUp 等鼠标事件,要在程序中捕获这些事件,必须另想办法。本文使用注入 java 脚本的方法来捕获控件的鼠标事件。

另一更为有效的方法,可以捕获 WebBrowser 众多的鼠标和键盘事件,如鼠标坐标、按下了键盘哪个键,以及键盘 Ctrl、Alt、Shift 键的状态、当前网页元素的ID、索引等等。参见另一文章:VB 捕获 WebBrowser控件的鼠标和键盘事件

'以下代码在 VB6 调试通过

'勾选部件:Microsoft Internet Controls,在窗体放置控件:WebBrowser1

'程序运行后,在 WebBrowser1 内移动或按下鼠标,注意观察窗口标题栏给出的信息

'本人原创,转载请注明来源:http://hi.baidu.com/100bd/blog/item/19795a80b2ba61d5bd3e1ee1.html

Private Sub Form_Load()

Me.Caption = "WebBrowser 鼠标事件例子"

WebBrowser1.Navigate "about:blank" '设置为空白页或某网页,否则无法进行鼠标捕获

'    WebBrowser1.Navigate "http://www.baidu.com" '显示百度首页

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

Me.Caption = "WebBrowser 鼠标事件例子"

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 '让网页正常跳转

Cancel = True '让网页不要跳转

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 '显示鼠标捕获的状态

End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

On Error Resume Next

Dim js As String

'脚本:用于捕获 鼠标按下

js = "document.body.οnmοusedοwn=function()" & vbCrLf & _

"{location.href='mouse://down|'+window.event.x + '|'+window.event.y;}"

WebBrowser1.Document.parentWindow.execScript js, "javascript"

'脚本:用于捕获 鼠标移动

js = "document.body.οnmοusemοve=function()" & vbCrLf & _

"{location.href='mouse://move|'+window.event.x + '|'+window.event.y;}"

WebBrowser1.Document.parentWindow.execScript js, "javascript"

'脚本:用于捕获 鼠标抬起

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

'本人原创,转载请注明来源:http://hi.baidu.com/100bd/blog/item/19795a80b2ba61d5bd3e1ee1.html

另一更为有效的方法,可以捕获 WebBrowser 众多的鼠标和键盘事件,如鼠标坐标、按下了键盘哪个键,以及键盘 Ctrl、Alt、Shift 键的状态、当前网页元素的ID、索引等等。参见另一文章:VB 捕获 WebBrowser控件的鼠标和键盘事件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值