提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
一、c++怎么点击鼠标
windows头文件为c++提供了许多好玩的函数鼠标点击也不例外
二、使用步骤
1.判断是否点击某个键盘
代码如下
int KEY_DOWN(VK_NONAME)
{
return ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) ;
}
此代码用到了GerAsyncKeyState函数要加上:
#include <windows.h>
2.鼠标点击函数
代码如下:
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);//当前位置点击一次鼠标
mouse_event这个函数的原型是这样的:
void mouse_event(DWORD dwFlags,DWORD dx,DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo);
3.
怎么模拟键盘:
模拟键盘也有一个专用的函数叫 keybd_event
用法可以是(如下)
keybd_event('/*你想按的键*/', 0, 0, 0); //按下某个键
keybd_event('/*你想按的键*/', 0, KEYEVENTF_KEYUP, 0); //松开某个键
源代码如下:
#include<conio.h>
#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
int check(char c)//检测某个按键是否按下
{
if(!KEY_DOWN(c)) return 0;
return 1;
}
int main()
{
HWND hWnd = ::GetForegroundWindow();
int now1=0,now2=0;
cout<<"Z:begin"<<endl;
cout<<"L:stop"<<endl;
cout<<"P:exit"<<endl;
cout<<"E:start E";
while(1)
{
if(check('P'))//如果点击'P'则就结束程序
{
break;
}
if(check('L')) //如果点击'L'则就全部暂停
{
now1=0;
now2=0;
}
if(check('Z'))//如果点击'Z' 则就模拟鼠标
now1=1;
if(check('E'))//如果点击'E'就模拟键盘
{
now2=1;
}
if(check('F') || check('D')) //如果点击'F' 或 'D' 就暂停
{
now2=0;
}
if(now1 && now2)
{
cout<<endl<<"一次只能开一个";
now1=0;now2=0;
continue;
}
if(now1)
{
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);//当前位置点击一次鼠标
}
if(now2)//模拟点击'a'键
{
keybd_event('a', 0, 0, 0);
keybd_event('a', 0, KEYEVENTF_KEYUP, 0);
keybd_event('a', 0, 0, 0);
keybd_event('a', 0, KEYEVENTF_KEYUP, 0);
keybd_event('a', 0, 0, 0);
keybd_event('a', 0, KEYEVENTF_KEYUP, 0);
keybd_event('a', 0, 0, 0);
keybd_event('a', 0, KEYEVENTF_KEYUP, 0);
}
if(now1 && !now2) //如果用的是鼠标连点器那么就等待0.001秒不然速度不快
{
Sleep(1);
}
if(!now1 && now2)// 如果要模拟键盘则就等待0.03秒
{
Sleep(30);
}
}
}
双引号里面的内容可以改成其他的内容