vc模拟鼠标操作
来源:互联网 发布:什么是软件销售 编辑:程序博客网 时间:2024/05/21 22:53
VC模拟鼠标操作(SendMessage、mouse_event)
2012-03-18 23:26:52|5758次阅读|上传:wustguangh【已有0条评论】发表评论
<iframe id="iframeu1591084_0" src="http://pos.baidu.com/acom?rdid=1591084&dc=2&di=u1591084&dri=0&dis=0&dai=2&ps=342x217&dcb=BAIDU_UNION_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1456042133375&ti=VC%E6%A8%A1%E6%8B%9F%E9%BC%A0%E6%A0%87%E6%93%8D%E4%BD%9C(SendMessage%E3%80%81mouse_event)&ari=1&dbv=2&drs=1&pcs=1366x517&pss=1366x353&cfv=0&cpl=41&chi=1&cce=true&cec=UTF-8&tlm=1456042133&ltu=http%3A%2F%2Fvcsos.com%2Farticle%2FpageSource%2F120318%2F20120318112652.shtml&ecd=1&psr=1366x768&par=1366x706&pis=-1x-1&ccd=24&cja=true&cmi=111&col=zh-CN&cdo=-1&tcn=1456042133&qn=473917fee7d9d48e&tt=1456042133349.111.359.369" width="468" height="15" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="border:0; vertical-align:bottom;margin:0;" allowtransparency="true"></iframe>
关键词:C/C++, 操作系统|来源:唯设编程网
本文介绍VC进行鼠标模拟的常用方案,包括发送鼠标事件消息和使用mouse_event系统函数,发送鼠标消息的例子如下:
1
pWnd->SendMessage(WM_RBUTTONDOWN,0,(y<<16)|x);
这种方法不需要窗体在前端,甚至最小化也可以使用,但是此方法并不是在所有场合有效,特别是对于不响应鼠标消息的程序更是如此。在这种情况下,可以尝试使用mouse_event函数。
首先给出mouse_event函数的原型:
1
2
3
4
5
6
7
8
VOID
mouse_event(
DWORD
<i>dwFlags</i>,
DWORD
<i>dx</i>,
DWORD
<i>dy</i>,
DWORD
<i>dwData</i>,
ULONG_PTR
<i>dwExtraInfo</i>
);
mouse_event有五个参数,第 一个为选项标志,为MOUSEEVENTF_LEFTDOWN时表示左键按下为MOUSEEVENTF_LEFTUP表示左键松开,向系统发送相应消息;第二、三个参数分别表示模拟鼠标对应x,y的位置,需要注意测是该参数对应的是屏幕坐标;第四、五个参数并不重要,一般也可设为0,0。若要得到Keybd_event和mouse_event函数的更详细的用法,可以查阅msdn。
mouse_even只能够发送前台消息,即仅对当前激活的窗体有效。t最好配合SetCursorPos(x,y)函数一起使用,首先调用SetCursorPos函数设置鼠标位置到需要模拟鼠标操作的位置,然后调用mouse_event模拟鼠标操作,下面是关于mouse_event的示例代码:
1
2
3
4
5
POINT lpPoint;
GetCursorPos(&lpPoint);
SetCursorPos(lpPoint.x, lpPoint.y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
示例代码表示鼠标的双击,若要表示单击,用两个mouse_event即可(一次放下,一次松开)。
上面说明了模拟鼠标操作的两种常用方法,下面再给出一个综合实例进行阐述说明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//在发送按键消息前需要设置下鼠标位置,扫雷程序似乎是根据鼠标位置
//确定点击的方块的,而不是鼠标消息的参数
//所以PostMessage在这里也不可以使用
::SetCursorPos(x,y);
//判断是否是雷,不是雷才执行鼠标点击动作
if
(MineInf[acol*row+arow]==1){
/*::mouse_event(MOUSEEVENTF_RIGHTDOWN,x,y,0,0);
::mouse_event(MOUSEEVENTF_RIGHTUP,x,y,0,0); */
pWnd->SendMessage(WM_RBUTTONDOWN,0,(y<<16)|x);
pWnd->SendMessage(WM_RBUTTONUP,0,(y<<16)|x);
}
else
{
/*::mouse_event(MOUSEEVENTF_LEFTDOWN,x,y,0,0);
::mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0);*/
pWnd->SendMessage(WM_LBUTTONDOWN,0,(y<<16)|x);
pWnd->SendMessage(WM_LBUTTONUP,0,(y<<16)|x);
}
好了,这就是目前使用最多的VC程序进行鼠标事件模拟的两种方案,读者可以根据实际情况选择使用。
<iframe id="iframeu1589421_0" src="http://pos.baidu.com/acom?rdid=1589421&dc=2&di=u1589421&dri=0&dis=0&dai=3&ps=1475x181&dcb=BAIDU_UNION_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1456042133375&ti=VC%E6%A8%A1%E6%8B%9F%E9%BC%A0%E6%A0%87%E6%93%8D%E4%BD%9C(SendMessage%E3%80%81mouse_event)&ari=1&dbv=2&drs=1&pcs=1349x517&pss=1349x1585&cfv=0&cpl=41&chi=1&cce=true&cec=UTF-8&tlm=1456042133&ltu=http%3A%2F%2Fvcsos.com%2Farticle%2FpageSource%2F120318%2F20120318112652.shtml&ecd=1&psr=1366x768&par=1366x706&pis=-1x-1&ccd=24&cja=true&cmi=111&col=zh-CN&cdo=-1&tcn=1456042134&qn=3b3383abf634a487&tt=1456042133349.214.561.562" width="728" height="90" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="border:0; vertical-align:bottom;margin:0;" allowtransparency="true"></iframe>
【发表评论0条 】
网友评论(共0条评论)..
VC模拟鼠标操作(SendMessage、mouse_event)第一页上一页下一页最末页
发表评论/共0条评论..
请您注意
·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在VC编程网评论发表的作品,VC编程网有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款
·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在VC编程网评论发表的作品,VC编程网有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款
0 0
- VC模拟鼠标操作
- vc模拟鼠标操作
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- vc模拟鼠标键盘操作实用类
- VC++鼠标、键盘的模拟操作
- vc模拟鼠标单击
- VC++模拟鼠标点击
- vc模拟鼠标键盘操作实用类mouse_event
- C# 模拟鼠标操作
- 模拟键盘鼠标操作
- 模拟鼠标键盘操作
- MEMS 陀螺仪资料整理之《MEMS 陀螺仪简介及其应用》
- AndoidStudio中module移除不了
- Jquery map()与get()
- 网络下载-xUtils,HttpUtils
- MyEclipse10--Cannot return from outside a function or method
- vc模拟鼠标操作
- JAVA简单的zip文档 文件读取例子
- 《机器学习实战》实践心得 kNN篇
- 网络下载-HttpURLConnection
- Jq中event.target 与this的区别
- Swift实现IOS界面的跳转
- 构建单页Web应用
- 循环结构(while语句)
- ZOJ-3202-Second-price Auction【6th浙江省赛】
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
墓碑文字
墓碑图
墓碑书
墓碑多少钱
墓碑价格表
墓碑厂家
墓碑 价格
墓碑石
墓碑定制
刻墓碑
墓碑内容
墓碑的样式
墓碑鲜花
半截墓碑
怎样写墓碑
墓碑石钉头
墓碑文化
k线墓碑线
墓碑文
抄墓碑
墓碑网站
墓碑的形状
墓碑公司
墓碑怎么写
国外墓碑
墓碑样式
墓碑铭
蓝洁瑛墓碑被熏黑
墓碑碑文范例
父母墓碑碑文范例
农村上墓碑三大忌
墓碑刻子孙名字不吉利
墓碑格式图片
墓碑子女名字排布示范
阴阳路抄墓碑
墓碑柱上七字对联集锦
墓碑对联大全
墓碑上刻字有什么讲究
墓碑样式图片
墓碑格式及样板
一般墓碑的价格
暂时没有评论..