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控件的鼠标和键盘事件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实例27:python

#题目&#xff1a;利用递归函数调用方式&#xff0c;将所输入的5个字符&#xff0c;以相反顺序打印出来。 #函数赋值两个变量 def output(s,l): if l0: return print (s[l-1]) output(s,l-1) s input(‘Input a string:’) l len(s) output(s,l)

python的describe参数_python pandas DataFrame.describe用法及代码示例

生成描述性统计信息。描述性统计数据包括总结数据集分布的集中趋势&#xff0c;离散度和形状的统计数据&#xff0c;但不包括NaN值。分析数值和对象序列&#xff0c;以及DataFrame混合数据类型的列集。输出将根据提供的内容而有所不同。有关更多详细信息&#xff0c;请参阅以下…

《React Native跨平台移动应用开发》PDF电子书分享

链接: https://pan.baidu.com/s/14r6xZPJ0u1mrZejEuV8RrA 密码: pqan 分享《React Native跨平台移动应用开发》PDF电子书&#xff0c;本书为高清PDF电子书&#xff0c;内容截图如下 转载于:https://www.cnblogs.com/meidongdiluo/p/9625607.html

实例28:python

#题目&#xff1a;有5个人坐在一起&#xff0c;问第五个人多少岁&#xff1f;他说比第4个人大2岁。 #问第4个人岁数&#xff0c;他说比第3个人大2岁。问第三个人&#xff0c;又说比第2人大两岁。 #问第2个人&#xff0c;说比第一个人大两岁。最后问第一个人&#xff0c;他说是1…

如何使用vs2017进行html开发,VS2017开发vue单页应用

我正在学vue开发&#xff0c;想用VS开发一个单页应用&#xff0c;按照网上的提示配置好了&#xff0c;但是始终无法运行起来&#xff0c;主要有以下两点&#xff1a;在main.js中使用了import Vue from vue&#xff0c;但是实际运行时提示 import 错误无法安装npm包&#xff0c;…

c++语言取整为什么要加0.5_c++ 取整:四舍五入 向上取整 向下取整

AngularJS 脏检查深入分析写在开头 关于Angular脏检查,之前没有仔细学习,只是旁听道说,Angular 会定时的进行周期性数据检查,将前台和后台数据进行比较,所以非常损耗性能. 这是大错而特错的.我甚至在新浪前端面试的时 ...python安装MySQLdb驱动安装了好几次了,索性几个笔记吧,经…

实例29:python

#题目&#xff1a;给一个不多于5位的正整数&#xff0c;要求&#xff1a;一、求它是几位数&#xff0c;二、逆序打印出各位数字 #!/usr/bin/python -- coding: UTF-8 -- x int(input(“请输入一个数:\n”)) a x / 10000 b x % 10000 / 1000 c x % 1000 / 100 d x % 100…

java中的Sort函数,你值得看

基于C语言中的sort如此这么方便&#xff0c;自然而然&#xff0c;java中也有类似C的sort函数。 1.普通数组&#xff1a;Arrays.sort(数组名&#xff0c;开始位置&#xff0c;结束位置)。 2.类中属性排序&#xff1a; 模板&#xff1a; class A { int n; } class cmp implement …

2021届定远三中高考成绩查询,定远各中学高考喜报!

原标题&#xff1a;定远各中学高考喜报&#xff01;关注定远2019年高考实现多项新突破本科达线人数较上年增加340人(点击看大图)砥砺前行新时代&#xff0c;定远教育写华章。6月23日&#xff0c;全县人民高度关注的2019年高考成绩揭晓。我县教体系统广大师生不负众望&#xff0…

实例30:python

#一个5位数&#xff0c;判断它是不是回文数。即12321是回文数&#xff0c; #个位与万位相同&#xff0c;十位与千位相同。 x int(input(‘输入一个五位数&#xff1a;’)) a int(x / 10000) b int(x % 10000 / 1000) c int(x % 1000 / 100) d int(x % 100 / 10) e int(x …

休眠后gpio状态_1.Linux电源管理-休眠与唤醒

1.休眠方式在内核中,休眠方式有很多种,可以通过下面命令查看常用的休眠方式有freeze,standby, mem, diskfreeze:冻结I/O设备,将它们置于低功耗状态,使处理器进入空闲状态,唤醒最快,耗电比其它standby, mem, disk方式高standby:除了冻结I/O设备外,还会暂停系统,唤醒较快,耗电比其…

变换之时钟实现

为了更好的利用学过的知识&#xff0c;扎实一下知识&#xff0c;也方便日后的复习&#xff0c;则需要做一些东西热身热身一下 以下是实现的代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title>…

计算机用户名登陆管理员权限,关于win10勿删用户账号下管理员身份导致无法登录系统的问题...

我昨天在控制面板-用户-管理计算机内置账户&#xff0c;在“Zhao Yikang”用户名(另外还有administrator用户&#xff0c;名我没动)属性里面&#xff0c;“隶属于”那个界面里面&#xff0c;删除了administrator账户&#xff0c;同时还保留有一个user账户没动没删。之后重启电脑…

实例31:python

#题目&#xff1a;请输入星期几的第一个字母来判断一下是星期几 #!/usr/bin/python -- coding: UTF-8 -- letter input(“please input:”) #while letter ! ‘Y’: if letter ‘S’: print (‘please input second letter:’) letter input(“please input:”) if lette…

python聚类分析结果很差_python中的聚类分析:value错误:x和y的大小必须相同

我尝试了以下代码&#xff0c;但在执行时&#xff0c;显示以下错误&#xff1a;(ValueError: x and y must be the same size)代码&#xff1a;import pandas as pdimport matplotlib.pyplot as pltfrom sklearn.preprocessing import StandardScalerfrom sklearn.cluster impo…

实例32:python

#按相反的顺序输出列表的值。 #!/usr/bin/python -- coding: UTF-8 -- a [‘one’, ‘two’, ‘three’] for i in a[::-1]: print (i)

整样运用计算机考试,2017年9月计算机二级考试《MS Office高级应用》上机操作题(2)...

字处理题12012级企业管理专业的林楚楠同学选修了“供应链管理”课程&#xff0c;并撰写了题目为“供应链中的库存管理研究”的课程论文。论文的排版和参考文献还需要进一步修改&#xff0c;根据以下要求&#xff0c;帮助林楚楠对论文进行完善。(1)在考生文件夹下&#xff0c;将…

mysql search yum_CentOS 7 yum安装配置mysql

首先去官网下载要用的yum源传送门&#xff1a;http://dev.mysql.com/downloads/repo/yum/yum源文件&#xff1a;/home/mysql57-community-release-el7-8.noarch.rpm是一个rpm包&#xff0c;如果是Gnome&#xff0c;可以选择centos7的软件包安装程序安装即可。也可以用命令的方式…

Django缓存和内置信号

缓存 简单概括就是将对数据库操作查询所得到的数据放入另外一台机器上(缓存)中&#xff0c;当用户再次请求时&#xff0c;直接去缓存中拿&#xff0c;避免对数据库的频繁操作&#xff0c;加快数据的显示时间&#xff0c;需要知道的是&#xff0c;缓存里面的数据一般都设置有超时…

实例33:python

#题目&#xff1a;按逗号分隔列表。 #!/usr/bin/python -- coding: UTF-8 -- L [1,2,3,4,5] s1 ‘,’.join(str(n) for n in L) print (s1)