【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 2936|回复: 0

vc模拟鼠标键盘操作实用类

[复制链接]
发表于 2007-4-5 17:42:02 | 显示全部楼层 |阅读模式
//******************&nbsp;类mk头文件mk.h&nbsp;**************************<br/>#if&nbsp;!defined(AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_)<br/>#define&nbsp;AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_ <p></p><p>#if&nbsp;_MSC_VER&nbsp;&gt;&nbsp;1000<br/>#pragma&nbsp;once<br/>#endif&nbsp;//&nbsp;_MSC_VER&nbsp;&gt;&nbsp;1000<br/>#include&nbsp;"winable.h"</p><p>class&nbsp;mk<br/>{<br/>public: <br/>mk();<br/><br/>static&nbsp;void&nbsp;Key(BYTE&nbsp;k,&nbsp;int&nbsp;mSeconds=0);//按一个键,mSeconds表按键后到<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//下一次操作延迟的时间:ms<br/>static&nbsp;void&nbsp;Key2(BYTE&nbsp;k1,&nbsp;BYTE&nbsp;k2,int&nbsp;mSeconds=0);//按2个键<br/>static&nbsp;void&nbsp;Key3(BYTE&nbsp;k1,BYTE&nbsp;k2,BYTE&nbsp;k3,int&nbsp;mSeconds=0);//按3个键<br/><br/>static&nbsp;void&nbsp;Click(int&nbsp;x,int&nbsp;y,int&nbsp;mSeconds=0);//单击<br/>static&nbsp;void&nbsp;RClick(int&nbsp;x,int&nbsp;y,int&nbsp;mSeconds=0);//右击<br/>static&nbsp;void&nbsp;DClick(int&nbsp;x,int&nbsp;y,int&nbsp;mSeconds=0);//双击<br/>static&nbsp;void&nbsp;CtrlClick(int&nbsp;x,&nbsp;int&nbsp;y,&nbsp;int&nbsp;mSeconds=0);//Ctrl+单击<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;void&nbsp;Drag(int&nbsp;x1,int&nbsp;y1,int&nbsp;x2,int&nbsp;y2,int&nbsp;mSeconds=0);//鼠标拖动</p><p>virtual&nbsp;~mk();<br/><br/>};</p><p>#endif&nbsp;//&nbsp;!defined(AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_)<br/>//******************&nbsp;类mk头文件mk.h&nbsp;end**************************<br/>//******************&nbsp;类mk实现文件mk.cpp&nbsp;**************************<br/>#include&nbsp;"stdafx.h"<br/>#include&nbsp;"mk.h"<br/>#ifdef&nbsp;_DEBUG<br/>#undef&nbsp;THIS_FILE<br/>static&nbsp;char&nbsp;THIS_FILE[]=__FILE__;<br/>#define&nbsp;new&nbsp;DEBUG_NEW<br/>#endif</p><p>//////////////////////////////////////////////////////////////////////<br/>//&nbsp;Construction/Destruction<br/>//////////////////////////////////////////////////////////////////////</p><p>mk::mk()<br/>{</p><p>}</p><p>mk::~mk()<br/>{</p><p>}<br/>void&nbsp;mk::Click(int&nbsp;x,&nbsp;int&nbsp;y,&nbsp;int&nbsp;mSeconds)<br/>{<br/>SetCursorPos(x,y);<br/>mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);<br/>mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);<br/>Sleep(mSeconds);<br/>}<br/>void&nbsp;mk:Click(int&nbsp;x,&nbsp;int&nbsp;y,&nbsp;int&nbsp;mSeconds)<br/>{<br/>SetCursorPos(x,y);<br/>mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);<br/>mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);<br/>mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);<br/>mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);<br/>Sleep(mSeconds);<br/>}</p><p>void&nbsp;mk:rag(int&nbsp;x1,&nbsp;int&nbsp;y1,&nbsp;int&nbsp;x2,&nbsp;int&nbsp;y2,&nbsp;int&nbsp;mSeconds)<br/>{<br/>SetCursorPos(x1,y1);<br/>mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);<br/>SetCursorPos(x2,y2);<br/>mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);<br/>Sleep(mSeconds);<br/>}</p><p>void&nbsp;mk::RClick(int&nbsp;x,&nbsp;int&nbsp;y,&nbsp;int&nbsp;mSeconds)<br/>{<br/>SetCursorPos(x,y);<br/>mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);<br/>mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);<br/>Sleep(mSeconds);<br/>}<br/>void&nbsp;mk::Key(BYTE&nbsp;k,&nbsp;int&nbsp;mSeconds)<br/>{<br/>keybd_event(k,0,0,0);<br/>keybd_event(k,0,KEYEVENTF_KEYUP,0);&nbsp;<br/>Sleep(mSeconds);<br/>}<br/>void&nbsp;mk::Key2(BYTE&nbsp;k1,&nbsp;BYTE&nbsp;k2,&nbsp;int&nbsp;mSeconds)<br/>{<br/>//法1<br/>//keybd_event(k1,&nbsp;0,&nbsp;0&nbsp;,0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;//keybd_event(k2,&nbsp;0,&nbsp;0&nbsp;,0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;//keybd_event(k2,&nbsp;0,&nbsp;KEYEVENTF_KEYUP,0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;//keybd_event(k1,&nbsp;0,&nbsp;KEYEVENTF_KEYUP,0);<br/>//法2,更通用,但须先#include&nbsp;"winable.h"<br/>INPUT&nbsp;input[4];<br/>&nbsp;&nbsp;&nbsp;&nbsp;memset(input,0,sizeof(input));<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[0].type=input[1].type=input[2].type=input[3].type=INPUT_KEYBOARD;<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[0].ki.wVk=input[3].ki.wVk=k1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[1].ki.wVk=input[2].ki.wVk=k2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[2].ki.dwFlags&nbsp;=&nbsp;input[3].ki.dwFlags&nbsp;=&nbsp;KEYEVENTF_KEYUP;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;SendInput(4,&nbsp;input,&nbsp;sizeof(INPUT));</p><p>Sleep(mSeconds);<br/>}</p><p>void&nbsp;mk::CtrlClick(int&nbsp;x,&nbsp;int&nbsp;y,&nbsp;int&nbsp;mSeconds)<br/>{<br/>SetCursorPos(x,y);<br/>keybd_event(VK_CONTROL&nbsp;,0,0,0);<br/>mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);<br/>mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);<br/>keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);<br/>Sleep(mSeconds);<br/>}</p><p>void&nbsp;mk::Key3(BYTE&nbsp;k1,&nbsp;BYTE&nbsp;k2,&nbsp;BYTE&nbsp;k3,&nbsp;int&nbsp;mSeconds)<br/>{<br/>if(k1==VK_CONTROL&amp;&amp;k2==VK_MENU&amp;&amp;k3==VK_DELETE)<br/>ShellExecute(NULL,NULL,"taskmgr.exe",NULL,NULL,SW_SHOW);<br/>else<br/>{<br/>INPUT&nbsp;input[6];<br/>&nbsp;&nbsp;&nbsp;&nbsp;memset(input,0,sizeof(input));<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[0].type=input[1].type=input[2].type=input[3].type=input[4].type=input[5].type=INPUT_KEYBOARD;<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[0].ki.wVk=input[5].ki.wVk=k1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[1].ki.wVk=input[4].ki.wVk=k2;<br/>input[2].ki.wVk=input[3].ki.wVk=k3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;input[3].ki.dwFlags=input[4].ki.dwFlags=input[5].ki.dwFlags=KEYEVENTF_KEYUP;<br/>&nbsp;&nbsp;&nbsp;&nbsp;SendInput(6,&nbsp;input,&nbsp;sizeof(INPUT));<br/>}</p><p>Sleep(mSeconds);<br/>}</p><p>//******************&nbsp;类mk实现文件mk.cpp&nbsp;end**************************</p>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-5-14 16:32

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表