VC 控制windows自带计算器做加法运算

来源:互联网 发布:mac怎么做压缩包 编辑:程序博客网 时间:2024/05/10 01:03

        本程序控制windows自带计算器模拟从1加到100,直接源码。

#include<iostream>#include<windows.h>  using namespace std;//分别为数字键、+、=与计算器左上角的相对位置POINT point[12]={{310,240},//0{310,210},//1{350,210},//2{390,210},//3{310,180},//4{350,180},//5{390,180},//6{310,150},//7{350,150},//8{390,150},//9{430,240},//+{470,240} //=}; //模拟点击数字:比如输入参数为123,函数分别模拟点击'1','2','3'void NumClick(int value,unsigned long time,RECT rect){int qian,bai=0,shi=0,ge=0;if(value>=1000){qian=value / 1000;bai=value % 1000 / 100;shi=value %100 / 10;ge=value % 10;SetCursorPos(rect.left+point[qian].x ,rect.top+point[qian].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);SetCursorPos(rect.left+point[bai].x ,rect.top+point[bai].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);SetCursorPos(rect.left+point[shi].x ,rect.top+point[shi].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);SetCursorPos(rect.left+point[ge].x ,rect.top+point[ge].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);}else if(value>=100){bai=value / 100;shi=value %100 / 10;ge=value % 10;SetCursorPos(rect.left+point[bai].x ,rect.top+point[bai].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);SetCursorPos(rect.left+point[shi].x ,rect.top+point[shi].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);SetCursorPos(rect.left+point[ge].x ,rect.top+point[ge].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);}else if(value>=10){shi=value / 10;ge=value % 10;SetCursorPos(rect.left+point[shi].x ,rect.top+point[shi].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);SetCursorPos(rect.left+point[ge].x ,rect.top+point[ge].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);}else{SetCursorPos(rect.left+point[value].x ,rect.top+point[value].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);}}//模拟点击'+'void AddClick(unsigned long time,RECT rect){SetCursorPos(rect.left+point[10].x ,rect.top+point[10].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);}//模拟点击'='void EqualClick(unsigned long time,RECT rect){SetCursorPos(rect.left+point[11].x ,rect.top+point[11].y);mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,0,0,0,0);Sleep(time);}int main(){RECT rect;int dest_value=100;cout<<"请按F7..."<<endl;while(1){if(GetAsyncKeyState(VK_F7) & 0x0001)  //监视F8{ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL);Sleep(500);HWND pWnd=FindWindow(NULL,"计算器");SetWindowPos(pWnd, (HWND)-1, 0, 0, 0, 0, 3);GetWindowRect(pWnd,&rect);for(int i=1;i<=dest_value;i++){NumClick(i,200,rect);//输入数字if(i<dest_value){AddClick(200,rect);//输入+}else{EqualClick(200,rect);//输入=}}Sleep(5000);PostMessage(pWnd,WM_CLOSE,0,0);//关闭计算器}Sleep(200);}return 0;}



原创粉丝点击