|
//****************** 类mk头文件mk.h **************************<br/>#if !defined(AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_)<br/>#define AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_ <p></p><p>#if _MSC_VER > 1000<br/>#pragma once<br/>#endif // _MSC_VER > 1000<br/>#include "winable.h"</p><p>class mk<br/>{<br/>public: <br/>mk();<br/><br/>static void Key(BYTE k, int mSeconds=0);//按一个键,mSeconds表按键后到<br/> //下一次操作延迟的时间:ms<br/>static void Key2(BYTE k1, BYTE k2,int mSeconds=0);//按2个键<br/>static void Key3(BYTE k1,BYTE k2,BYTE k3,int mSeconds=0);//按3个键<br/><br/>static void Click(int x,int y,int mSeconds=0);//单击<br/>static void RClick(int x,int y,int mSeconds=0);//右击<br/>static void DClick(int x,int y,int mSeconds=0);//双击<br/>static void CtrlClick(int x, int y, int mSeconds=0);//Ctrl+单击<br/> static void Drag(int x1,int y1,int x2,int y2,int mSeconds=0);//鼠标拖动</p><p>virtual ~mk();<br/><br/>};</p><p>#endif // !defined(AFX_MK_H__B024D48F_090A_4F6F_A199_32996DF699B3__INCLUDED_)<br/>//****************** 类mk头文件mk.h end**************************<br/>//****************** 类mk实现文件mk.cpp **************************<br/>#include "stdafx.h"<br/>#include "mk.h"<br/>#ifdef _DEBUG<br/>#undef THIS_FILE<br/>static char THIS_FILE[]=__FILE__;<br/>#define new DEBUG_NEW<br/>#endif</p><p>//////////////////////////////////////////////////////////////////////<br/>// Construction/Destruction<br/>//////////////////////////////////////////////////////////////////////</p><p>mk::mk()<br/>{</p><p>}</p><p>mk::~mk()<br/>{</p><p>}<br/>void mk::Click(int x, int y, int 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 mk: Click(int x, int y, int 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 mk: rag(int x1, int y1, int x2, int y2, int 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 mk::RClick(int x, int y, int 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 mk::Key(BYTE k, int mSeconds)<br/>{<br/>keybd_event(k,0,0,0);<br/>keybd_event(k,0,KEYEVENTF_KEYUP,0); <br/>Sleep(mSeconds);<br/>}<br/>void mk::Key2(BYTE k1, BYTE k2, int mSeconds)<br/>{<br/>//法1<br/>//keybd_event(k1, 0, 0 ,0);<br/> //keybd_event(k2, 0, 0 ,0);<br/> //keybd_event(k2, 0, KEYEVENTF_KEYUP,0);<br/> //keybd_event(k1, 0, KEYEVENTF_KEYUP,0);<br/>//法2,更通用,但须先#include "winable.h"<br/>INPUT input[4];<br/> memset(input,0,sizeof(input));<br/> input[0].type=input[1].type=input[2].type=input[3].type=INPUT_KEYBOARD;<br/> input[0].ki.wVk=input[3].ki.wVk=k1;<br/> input[1].ki.wVk=input[2].ki.wVk=k2;<br/> input[2].ki.dwFlags = input[3].ki.dwFlags = KEYEVENTF_KEYUP;</p><p> SendInput(4, input, sizeof(INPUT));</p><p>Sleep(mSeconds);<br/>}</p><p>void mk::CtrlClick(int x, int y, int mSeconds)<br/>{<br/>SetCursorPos(x,y);<br/>keybd_event(VK_CONTROL ,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 mk::Key3(BYTE k1, BYTE k2, BYTE k3, int mSeconds)<br/>{<br/>if(k1==VK_CONTROL&&k2==VK_MENU&&k3==VK_DELETE)<br/>ShellExecute(NULL,NULL,"taskmgr.exe",NULL,NULL,SW_SHOW);<br/>else<br/>{<br/>INPUT input[6];<br/> memset(input,0,sizeof(input));<br/> input[0].type=input[1].type=input[2].type=input[3].type=input[4].type=input[5].type=INPUT_KEYBOARD;<br/> input[0].ki.wVk=input[5].ki.wVk=k1;<br/> input[1].ki.wVk=input[4].ki.wVk=k2;<br/>input[2].ki.wVk=input[3].ki.wVk=k3;<br/> input[3].ki.dwFlags=input[4].ki.dwFlags=input[5].ki.dwFlags=KEYEVENTF_KEYUP;<br/> SendInput(6, input, sizeof(INPUT));<br/>}</p><p>Sleep(mSeconds);<br/>}</p><p>//****************** 类mk实现文件mk.cpp end**************************</p> |
|