C/C++ 模拟键盘操作(一)

您所在的位置:网站首页 易语言按下某键代码没反应 C/C++ 模拟键盘操作(一)

C/C++ 模拟键盘操作(一)

2023-08-12 08:06| 来源: 网络整理| 查看: 265

    本篇内容主要介绍如何使用C/C++模拟键盘操作。

    玩游戏的小伙伴可能使用过按键精灵,录制一个简单的脚本就可以模拟鼠标和键盘的操作极大程度上解决你的双手了,比如你玩逆战的时候使用狙击的新手就可以使用一个简单的脚本或者宏实现连狙的效果,或者穿越火线跳箱子是一个很简单的技巧,如果是一个绝对的新手,那么这个使用脚本的方式很更简单。

目录

如何模拟按键操作?

虚拟键值大全

按下某键 

放开某键

按下弹起

组合键

如何模拟按键操作?

在C/C++之中,Windows系统提供了模拟键盘操作的接口,使用方式为keybd_event函数,有关keybd_event函数的使用如下。

函数功能:该函数合成一次击键事件。系统可使用这种合成的击键事件来产生WM_KEYUP或WM_KEYDOWN消息,键盘驱动程序的中断处理程序调用keybd_event函数。在Windows NT中该函数己被使用SendInput来替代它完成操作。

函数原型;VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);

参数:

bVk:定义一个虚拟键码。键码值必须在1~254之间。   bScan:定义该键的硬件扫描码。   dwFlags:定义函数操作的各个方面的一个标志位集。应用程序可使用如下一些预定义常数的组合设置标志位。   KEYEVENTF_EXTENDEDKEY:若指定该值,则扫描码前一个值为OXEO(224)的前缀字节。   KEYEVENTF_KEYUP:若指定该值,该键将被释放;若未指定该值,该键将被按下。

虚拟键值大全

 虚拟键值keybd_event函数使用的第一个也是最重要的参数,如下:

虚拟键十六进制值十进制值相应键盘或鼠标键VK_LBUTTON011鼠标左键VK_RBUTTON022鼠标右键VK_CANCEL033Ctrl-Break键VK_MBUTTON044鼠标中键VK_BACK088Backspace键VK_TAB099Tab键VK_CLEAR0C12Clear键VK_RETURN0D13Enter键VK_SHIFT1016Shift键VK_CONTROL1117Ctrl键VK_MENU1218Alt键VK_PAUSE1319Pause键VK_CAPITAL1420Caps Lock键VK_ESCAPE1B27Esc键VK_SPACE2032Space键VK_PRIOR2133Page Up键VK_NEXT2234Page Down键VK_END2335End键VK_HOME2436Home键VK_LEFT2537←键VK_UP2638↑键VK_RIGHT2739→键VK_DOWN2840↓键VK_SELECT2941Select键VK_PRINT2A42Print键VK_EXECUTE2B43Execute键VK_SNAPSHOT2C44Print Screen键VK_INSERT2D45Ins键VK_DELETE2E46Del键VK_HELP2F47Help键VK_030480键VK_131491键VK_232502键VK_333513键VK_434524键VK_535535键VK_636546键VK_737557键VK_838568键VK_939579键VK_A4165A键VK_B4266B键VK_C4367C键VK_D4468D键VK_E4569E键VK_F4670F键VK_G4771G键VK_H4872H键VK_I4973I键VK_J4A74J键VK_K4B75K键VK_L4C76L键VK_M4D77M键VK_N4E78N键VK_O4F79O键VK_P5080P键VK_Q5181Q键VK_R5282R键VK_S5383S键VK_T5484T键VK_U5585U键VK_V5686V键VK_W5787W键VK_X5888X键VK_Y5989Y键VK_Z5A90Z键VK_LWIN5B91左Windows键VK_RWIN5C92右Windows键VK_APPS5D93应用程序键VK_SLEEP5F95休眠键VK_NUMPAD06096小数字键盘0键VK_NUMPAD16197小数字键盘1键VK_NUMPAD26298小数字键盘2键VK_NUMPAD36399小数字键盘3键VK_NUMPAD464100小数字键盘4键VK_NUMPAD565101小数字键盘5键VK_NUMPAD666102小数字键盘6键VK_NUMPAD767103小数字键盘7键VK_NUMPAD868104小数字键盘8键VK_NUMPAD969105小数字键盘9键VK_MULTIPLY6A106乘号键VK_ADD6B107加号键VK_SEPARATOR6C108分割键VK_SUBSTRACT6D109减号键VK_DECIMAL6E110小数点键VK_DIVIDE6F111除号键VK_F17012F1键VK_F271113F2键VK_F372114F3键VK_F473115F4键VK_F574116F5键VK_F675117F6键VK_F776118F7键VK_F877119F8键VK_F978120F9键VK_F1079121F10键VK_F117A122F11键VK_F127B123F12键VK_F137C124F13键VK_F147D125F14键VK_F157E126F15键VK_F167F127F16键VK_F1780128F17键VK_F1881129F18键VK_F1982130F19键VK_F2083131F20键VK_F2184132F21键VK_F2285133F22键VK_F2386134F23键VK_F2487135F24键VK_NUMLOCK90144Num Lock键VK_SCROLL9145Scroll Lock键VK_LSHIFTA0160左Shift键VK_RSHIFTA1161右Shift键VK_LCONTROLA2162左Ctrl键VK_RCONTROLA3163右Ctrl键VK_LMENUA4164左Alt键VK_RMENUA5165右Alt键

在C/C++之中这个函数包含在头文件windows.h之中,使用方式举例如下。

按下某键 

按下某键的动作,代码如下

keybd_event(VK_C,0,0,0); //按下C键

根据个人习惯我很把这个功能设置成一个简单的函数

void down(int vk) { keybd_event(vk,0,0,0); }   放开某键

放开某键/弹起某键只需要给keybd_event的参数改成KEYEVENTF_KEYUP即可,或者改写成数字2也可以

keybd_event(VK_C,KEYEVENTF_KEYUP,0); //放开C键

也将这个函数写成一个简单的函数

void down(int vk) { keybd_event(vk,0,KEYEVENTF_KEYUP,0); }  按下弹起

按下和弹起是是一个按键的最基本操作,比如在打字的时候,你会快速的按下某键并弹起。再上面两个通过keybd_event函数实现和down和up我们很方便的就可以完成以下简单的按键操作

void press(int vk) { down(vk); up(vk); } 组合键

这里我给出一个例子大家很快就明白了,对所有组合键都可以采用这种方式

//模拟Ctrl+V void ctrl_v() { down(VK_CONTROL);//按下Ctrl键 press(VK_V);//按下V键,并放开 up(VK_CONTROL);//放开V键 }

大家通过上面的函数很快就可以完成一个刷屏器了。 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3