问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB中怎样模拟鼠标双击操作?

发布网友 发布时间:2022-04-23 01:07

我来回答

3个回答

热心网友 时间:2023-06-30 22:59

当然可以啊。
使用API函数mouse_event可以模拟鼠标事件,比如左键单击、双击和右键单击等。这个实例利用此函数产生了十分有趣的效果,无论鼠标处于屏幕的任何位置,每隔一秒程序会使鼠标在那个位置单击或双击一次,这会给我们造成什么样的混乱呢?试一试就知道了。

先在程序中加入如下的声明后,就能引用mouse_event函数:
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

其中各个参数的意义如下表所示:

参数 意义
dwFlags Long,下表中标志之一或它们的组合
dx,dy Long,根据MOUSEEVENTF_ABSOLUTE标志,指定x,y方向的绝对位置或相对位置
cButtons Long,没有使用
dwExtraInfo Long,没有使用
dwFlags常数 意义
MOUSEEVENTF_MOVE &H1,移动鼠标
MOUSEEVENTF_LEFTDOWN &H2,模拟鼠标左键按下
MOUSEEVENTF_LEFTUP &H4,模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN &H8,模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP &H10,模拟鼠标右键抬起
MOUSEEVENTF_MIDDLEDOWN &H20,模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP &H40,模拟鼠标中键抬起
MOUSEEVENTF_ABSOLUTE &H8000,标示是否采用绝对坐标

程序中我们这样使用mouse_event函数:

1、这里是鼠标左键按下和松开两个事件的组合即一次单击:
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
2、模拟鼠标右键单击事件:
mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
3、两次连续的鼠标左键单击事件 构成一次鼠标双击事件:
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

如上面所示如果我们要使用两个dwFlags常数的组合时,可以用Or将其连接起来。本例中我们把dx,dy参数都设为0,是指每次模拟事件的位置是鼠标的当前位置,dx,dy在没有使用MOUSEEVENTF_ABSOLUTE标志时是相对于鼠标当前位置的坐标,如果设置为使用绝对坐标,则dx,dy是相对于屏幕的坐标。

然后把这些语句放在Timer控件的Timer事件中,就能实现每一定间隔模拟一次鼠标事件了。

说明:我不是很会VC,所以只给出VB里面调用得方法。抱歉。

热心网友 时间:2023-06-30 22:59

可以用mouse_event API函数来模拟鼠标在某个位置Click

Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down
Private Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up
Private Const MOUSEEVENTF_MOVE = &H1 ' mouse move
Private Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down
Private Const MOUSEEVENTF_RIGHTUP = &H10 ' right button up

Private Sub MouseClick(x As Long, y As Long)
Dim SCR_W As Long
Dim SCR_H As Long

SCR_W = Screen.Width / 15
SCR_H = Screen.Height / 15
'移动鼠标
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, Int(x / SCR_W * 65535), Int(y / SCR_H * 65535), 0, 0
'左键按下
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
DoEvents
'左键放开
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
DoEvents
End Sub

调用举例:
在1024*768下点击屏幕*,在屏幕*放一个点击以后会有效果的东西看看结果

参考资料:http://topic.csdn.net/t/20051223/14/4477414.html

热心网友 时间:2023-06-30 23:00

Private Sub Form_DblClick()
Print "双击鼠标"
End Sub
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
健康码没有变红,但时间显示阳变红了 贵州健康码登录不了怎么办 北京有哪些好吃的西餐厅推荐? 什么是 辰、戌、丑、未?它们代表了什么意思? 《辰戌丑未四墓库》详解 干货:"辰戌丑未"四墓库用法详解 吃四环素有哪些副作用 吃了四环素片对身体有害吗 盐酸四环素片的不良反应有哪些呢? 服用四环素的副作用 autohotkey怎么模拟鼠标按键 C#用mouse_event模拟鼠标点击的问题 夏普电视机开关启动后指示灯闪了一下又黑屏,是什麼原因? 夏普电视黑屏然后自动关机是什么原因? 键盘自定义按键模拟鼠标点击桌面指定坐标 夏普电视上的奇异果一点就黑屏,貌似是昨晚系统更新了以后就出现黑屏了,怎么办???急急急 设置按键 模拟鼠标点击屏幕一个地方 夏普电视进不了主页夏普电视开机后出现SHARP logo,然后出现广告画面,接着就黑屏,黑屏约1分_百度问一问 如何模拟鼠标点击和按键 手机点开微信和联系人背景怎么变黑色的了? 夏普电视打开电视就黑屏,但有声音.怎么办 如何让鼠标在当前位置模拟单击 手机微信为什么是黑底 夏普电视机黑屏怎么办? 易语言中的模拟鼠标点击怎么才可以让鼠标在随意地方单击 我的华为荣耀手机微信屏幕变成黑底白字啦,怎么能调过来? 夏普液晶电视经常出现黑屏怎么办? 微信变黑底是怎么回事 夏普电视黑屏有声音什么问题? 诈骗两万要判多久 怎么化眼线 眼线怎么用? 眼线怎么选择? 上眼线怎么化 用微信扫描条形码、扫描出的结果是未找到该商品、是什么意思呢?是假货... 商品扫码显示未找到此商品相关信息识物可以是不是假的 二维码扫描提示未找到该商品是什么意思? s12手机vivo微信怎么识别相片里的二维码都是出现未发现商品 微信扫条码显示找不到相关信息怎么回事? 用微信扫不出产品的条码信息,这样东西是不是假 用微信扫一扫商品的条形码,所显示未找到该商品,是不是该商品就是假冒... 在淘宝买海外的东西用微信扫防伪码显示,未找到产品相关信息怎么办? 为什么条形码扫出来未查到相关产品? 为什么条形码扫出来显示不了产品信息 智能电表微信扫描条形码没有数据怎么回事? 商品条形码扫描出来不显示商品信息 用微信扫不到物品的条码信息,这样东西是不是假的 扫条形码码扫到了和扫条形码识别成功和识别条形码识别成功意思完全一样吗? 在天猫买的梦洁枕头为什么用微信扫商品的条码查不到相关信息? 微信扫描条形码,内容不显示,如何扫描出来条码信息?