- 使用场景
- 主要的几个函数介绍
- 实例
- 键盘输入对应值
当需要实现一些重复的点击,或者自动输入的情况下,可以使用到类似的功能,例如网页的自动刷新,QQ的自动输入,(嘴炮连发也可以)等,自己发掘呗,传奇这种游戏挂机也是可以的。
主要的几个函数介绍1.GetSystemMetrics()
这个函数主要用于获取当前电脑的分辨率,通过参数SM_CXSCREEN,SM_CYSCREEN,可以分别获取电脑分辨率的X和Y,例如电脑分辨率为1440*960,那么:
X_LEN=GetSystemMetrics(SM_CXSCREEN)
Y_LEN=GetSystemMetrics(SM_CYSCREEN)
X_LEN=1440,Y_LEN=960
2.mouse_event()
移动鼠标到指定位置,这里我们不需要去详细了解各个参数的内容,各位使用以下例子即可
mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE, x * 65535/x_len, y * 65535/y_len, 0, 0);
其中,
x,y代表指定位置的坐标
x_len,y_len代表屏幕分辨率
常用动作:
//鼠标左键按下
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
//鼠标左键抬起
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
3.GetCursorPos()
通过函数GetCursorPos(POINT* ptB)可以获得当前鼠标所在的位置.
例如:
POINT ptB = { 0, 0 };
GetCursorPos(&ptB);//获取鼠标位置
ptB.x,ptB.y的值就是鼠标的当前位置值.
--------------------------* 通过以上几个函数可以实现例1 *---------------------
4.keybd_event()
通过keybd_event函数可以执行键盘动作,常用的情形有
keybd_event(put,0,0,0); // 第三个参数为0表示按下
keybd_event(put,0,2,0); // 第三个参数为2表示按下
其中put表示按键码(章节尾有给出按键和按键码的映射表格)
*注意:表中,‘a’ ~ ‘z’的映射值与ASCALL中大写字母’A’ ~ 'Z’的值相同,这也意味着
keybd_event(‘A’,0,0,0);
keybd_event(‘A’,0,2,0);
可以直接模拟出键盘按下a键的 *** 作,建立在这个基础上我实现了例2函数
例1:在当前鼠标位置进行单击
#include#include #include #include #include int main(int argc,char *argv[]) { POINT ptB = { 0, 0 }; int x_len,y_len; GetCursorPos(&ptB);//获取鼠标位置 x_len=GetSystemMetrics(SM_CXSCREEN); y_len=GetSystemMetrics(SM_CYSCREEN); //将鼠标光标移动到 指定的位置 例子中屏幕分辨率1440x900 在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE, ptB。x * 65535/x_len, ptB.y * 65535/y_len, 0, 0); Sleep(50);//稍微延时50ms mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//鼠标左键按下 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//鼠标左键抬起 return 0; }
例2:传入字符串(字母和数字),模拟键盘进行输入
void inputRun( const char *inStr) { unsigned int i = 0; bool shiftFlag = false; char put; for(i=0; i= 'a' && put <= 'z') { put = put-32;//小写时进行值的转换 } else if(put >= 'A' && put <= 'Z') { //大写的时候按住shift keybd_event(16,0,0,0); shiftFlag = true; } keybd_event(put,0,0,0); keybd_event(put,0,2,0); if(shiftFlag == true) { //松开shift keybd_event(16,0,2,0); } Sleep(60); } }
键盘输入对应值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)