模拟鼠标的左键单击和右键单击

转载 2007年09月26日 14:00:00
'-------------------------------------------
'
       模拟鼠标的左键单击和右键单击
'-------------------------------------------
'
程序说明:
'
本例采用API函数实现模拟的鼠标事件,程序运行后会
'
产生十分有趣的效果。也来试一试。
'
本例中只使用了相对鼠标坐标,我们也可以使用绝对
'
鼠标坐标来试一试。
'
-------------------------------------------

'【VB声明】
'
  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)

'【说明】
'
  模拟一次鼠标事件

'【备注】
'
  进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度

'【参数表】
'
  dwFlags --------  Long,下述标志的一个组合
'
  MOUSEEVENTF_ABSOLUTE
'
  dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 -
'
  MOUSEEVENTF_MOVE         移动鼠标
'
  MOUSEEVENTF_LEFTDOWN     模拟鼠标左键按下
'
  MOUSEEVENTF_LEFTUP       模拟鼠标左键抬起
'
  MOUSEEVENTF_RIGHTDOWN    模拟鼠标右键按下
'
  MOUSEEVENTF_RIGHTUP      模拟鼠标右键抬起
'
  MOUSEEVENTF_MIDDLEDOWN   模拟鼠标中键按下
'
  MOUSEEVENTF_MIDDLEUP     模拟鼠标中键抬起
'
  dx -------------  Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动'

'  dy -------------  Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动

'  cButtons -------  Long,未使用

'  dwExtraInfo ----  Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序
Option Explicit
    
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 _
    )
 
'对API变量的定义
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

 
    
'调用了mouse_event函数,其参数的设置见前面说明
    '如果同时要模拟两个鼠标事件,可以用 Or 将两个参数连接
    '这里是 鼠标左键按下 和松开两个事件的组合即一次单击:
    mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0000

    
'模拟鼠标右键单击事件:
    mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0000
 
    
'两次连续的鼠标左键单击事件 构成一次鼠标双击事件:
    mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0000
    mouse_event MOUSEEVENTF_LEFTDOWN 
Or MOUSEEVENTF_LEFTUP, 0000
 
 
 

【MFC】模拟鼠标点击代码

MFC 工程 把以下代码放到你想要响应的函数里面就行 CPoint pt;  GetCursorPos(&pt);//获取鼠标在屏幕的当前位置 SetCursorPos(100,200);//移...
  • Plutus_Lee
  • Plutus_Lee
  • 2013年10月15日 15:24
  • 3367

MFC中由左键单击模拟左键双击引起的问题

项目需要根据左键单击计时的手段来模拟左键双击的效果
  • silyvin
  • silyvin
  • 2014年05月13日 23:10
  • 1702

MFC消息处理时,双击鼠标左键响应单击左键消息的处理

今天做老师留下来的作业题,莫名其妙出现Bug,然后发现是MFC消息处理机制的问题,在响应鼠标双击前,会先产生一个单击鼠标消息,这里是我的解决方法。 单击响应: void CMouseView:...
  • imudges_Zy
  • imudges_Zy
  • 2016年03月17日 22:21
  • 2771

模拟鼠标左键单击

SendMessage(hdl,WM_LBUTTONDOWN,0,$000c0020); SendMessage(hdl,WM_LBUTTONUP,0,$000c0020);
  • upc100
  • upc100
  • 2012年03月31日 21:48
  • 332

[C/C++] Windows下模拟鼠标右键操作

原文地址:http://blog.csdn.net/ariesjzj/article/details/8016476 用Windows提供的Shell类,用户可以在C++中查询和执行鼠标...
  • ariesjzj
  • ariesjzj
  • 2012年09月25日 13:05
  • 3556

修好了一个罗技鼠标,鼠标左键单击变双击问题解决了。

去年花120大洋买了个罗技光电鼠标,没用多久,人品爆发,鼠标左键单击变成双击了,时好时坏,用起来很让人恼火。上网查了一下,据说是左键按钮的机械故障,所以想到用旧鼠标的按键更换之,找到一个废弃的罗技机械...
  • ronghaoyue
  • ronghaoyue
  • 2009年08月14日 15:09
  • 10881

Extjs触发单击、双击、右击事件。

listeners: { "dblclick": { fn: this.onModifyClick, scope: this}, //响应双击事件 ...
  • qq1099866969
  • qq1099866969
  • 2014年02月27日 16:11
  • 1047

VC++模拟鼠标点击

VC++模拟鼠标点击flyfishvoid Test() { // TODO: 在此添加控件通知处理程序代码 CWnd *p = FindWindow(NULL, _T("测试"))...
  • flyfish1986
  • flyfish1986
  • 2016年10月18日 16:46
  • 1128

MFC中有关鼠标单击双击响应的问题

今天修改一程序的Bug,修改了半天,终无头绪。后猛然发现是因为双击的时候,也是响应单击消息函数。遂google,发现:Windows系统在系统的双击时间限制里双击鼠标左键调用OnLButtonDBlC...
  • educast
  • educast
  • 2014年10月08日 14:27
  • 3640

[我教你学]四步解决微软鼠标单击变双击问题

2004-12-20 10:24:44 《微型计算机》 孔德行 文章内容彩信发送 微软鼠标有个通病:在使用一段时间后,鼠标按键就会出现单击变双击的现象,给使用带来很大的不便。一般情况下,单击变双击现象...
  • dlyhlq
  • dlyhlq
  • 2008年02月22日 22:55
  • 1945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模拟鼠标的左键单击和右键单击
举报原因:
原因补充:

(最多只允许输入30个字)