当前位置:首页 > 芯闻号 > 充电吧
[导读]VC模拟鼠标的两种方式(SendMessage、mouse_event)鼠标模拟的常用方案,包括发送鼠标事件消息和使用mouse_event系统函数,发送鼠标消息的例子如下:1pWnd->Sen

VC模拟鼠标的两种方式(SendMessage、mouse_event)

鼠标模拟的常用方案,包括发送鼠标事件消息和使用mouse_event系统函数,发送鼠标消息的例子如下:

1pWnd->SendMessage(WM_RBUTTONDOWN,0,(y<<16)|x);

这种方法不需要窗体在前端,甚至最小化也可以使用,但是此方法并不是在所有场合有效,特别是对于不响应鼠标消息的程序更是如此。在这种情况下,可以尝试使用mouse_event函数。
首先给出mouse_event函数的原型:

1 2 3 4 5 6 7 8VOID mouse_event(           DWORD dwFlags,    DWORD dx,    DWORD dy,    DWORD dwData,    ULONG_PTR dwExtraInfo);

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 5POINT 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程序进行鼠标事件模拟的两种方案,读者可以根据实际情况选择使用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,近日高通公司宣布推出针对桌面平台的全新骁龙 X Plus 处理器。

关键字: 高通 骁龙 X Plus 处理器

近日,台积电在圣克拉拉年度技术研讨会上宣布首个“埃级”制程技术:A16。A16 是台积电首次引入背面电源输送网络技术,计划于 2026 年下半年开始量产。同时,台积电也在重新命名工艺节点,标志着「埃级」时代的开始。

关键字: 台积电 A16

4 月 25 日消息,4 月 25 日,国际数据公司(IDC)发布 2024 年第一季度中国手机市场跟踪报告,荣耀以 17.1% 的市场份额拿下第一,华为占 17.0% 位列第二,OPPO、苹果和 vivo 分别位列第三...

关键字: 荣耀 华为

业内消息, 近日华为全新Pura 70系列手机正式开售引发广大 数码爱好者追捧,但是有网友注意到这款手机的“AI修图”功能,竟然可以将照片中的人物衣服消除,并拍成视频发布网络。

关键字: 华为Pura70 华为

据韩媒报道,近日韩国多位军方人士透露,韩国军方正在考虑全面禁止在军事建筑内使用苹果手机,军方担心敏感信息通过录音泄露。

关键字: iPhone 苹果

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器

继“特斯拉开启万人大裁员”之后,如今又一家车企扛不住了!

关键字: 电动汽车

轻量级AI定制模型助力低成本快速部署 北京2024年4月18日 /美通社/ -- 数据和人工智能(AI)领域的领先者SAS—今日在SAS Innovate大会上首次展示了一款变革性的、旨在帮助企业直面业务挑战的解决方案...

关键字: SAS AI模型 人工智能 INNOVATE

领先的数据和AI平台SAS Viya运用大语言模型的可解释性和可集成性改善现有流程;SAS Data Maker将在保护敏感数据的同时解决关键挑战 北京2024年4月18日...

关键字: SAS VI 生成式AI MAKER

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列
关闭
关闭