C语言虚拟键盘事件

键盘各键键值
我在用虚拟键的函数keybd_event(),下面的键值是必不可少的.

键值
小写字母(a~z) ‘A’ ~ ‘Z’
大写字母(A~Z) VK_SHIFT + ‘A’ ~ ‘Z’
数字(0~9) ‘0’~‘9’
Shift VK_SHIFT / VK_LSHIFT(左) / VK_RSHIFT(右)
Ctrl VK_CONTROL / VK_LCONTROL(左) / VK_RCONTROL(右)
Alt VK_MENU / VK_LMENU(左) / VK_RMENU(右)
Win VK_LWIN(左) / VK_RWIN(右)
Caps Lock VK_CAPITAL
Nums Lock VK_NUMLOCK
Scroll Lock VK_SCROLL
F1 ~ F24 VK_F1 ~ VK_F24
Esc VK_ESCAPE
Tab VK_TAB
Backspace VK_BACK
Enter VK_RETURN
Space(空格) VK_SPACE
Home VK_HOME
End VK_END
Delete VK_DELETE
Insert VK_INSERT
Page Up VK_PRIOR
Page Down VK_NEXT
Print Screen VK_SNAPSHOT
小键盘数字0~9 VK_NUMPAD0 ~ VK_NUMPAD9
+ VK_ADD
- VK_SUBTRACT
* VK_MULTIPLY / VK_SHIFT + ‘8’
/ VK_DIVIDE
.(点) VK_DECIMAL
! VK_SHIFT + ‘1’
@ VK_SHIFT + ‘2’
# VK_SHIFT + ‘3’
$ VK_SHIFT + ‘4’
% VK_SHIFT + ‘5’
^ VK_SHIFT + ‘6’
& VK_SHIFT + ‘7’
( VK_SHIFT + ‘9’
) VK_SHIFT + ‘0’
_ VK_SHIFT + VK_SUBTRACT
VK_LEFT
VK_UP
VK_RIGHT
VK_DOWN
Cancel == Ctrl + Break VK_CANCEL
鼠标左键 VK_LBOTTON
鼠标右键 VK_RBOTTON
鼠标中键 VK_MBOTTON

虚拟键盘事件
keybd_event()函数 (请包含windows.h)
具体的参数不用太了解,直接上用法:

VOID KeyP(BYTE key)	//按下
{
    keybd_event(key,0,0,0);
}
VOID KeyR(BYTE key)	//释放
{
    keybd_event(key,0,2,0);
}
VOID KeyPR(BYTE key)//按下并释放
{
    keybd_event(key,0,0,0);
    keybd_event(key,0,2,0);
}

然后就诞生了几个奇葩的函数:

void Copy()
{
   KeyP(VK_CONTROL);
   KeyPR('C');
   KeyR(VK_CONTROL);
}
void Paste()
{
   KeyP(VK_CONTROL);
   KeyPR('V');
   KeyR(VK_CONTROL);
}
void Save()
{
   KeyP(VK_CONTROL);
   KeyPR('S');
   KeyR(VK_CONTROL);
}
void SelectAll()
{
   KeyP(VK_CONTROL);
   KeyPR('A');
   KeyR(VK_CONTROL);
}
void Print()
{
   KeyP(VK_CONTROL);
   KeyPR('P');
   KeyR(VK_CONTROL);
}
void Cut()
{
   KeyP(VK_CONTROL);
   KeyPR('X');
   KeyR(VK_CONTROL);
}
void Undo()
{
   KeyP(VK_CONTROL);
   KeyPR('Z');
   KeyR(VK_CONTROL);
}
void NewFile()
{
   KeyP(VK_CONTROL);
   KeyPR('N');
   KeyR(VK_CONTROL);
}

这类函数太多,就不列举了。

未知键
这些键我只能用剪贴板操作了 <_> ↓

, < > ? : ; ’ " [ ] { } ~ ` | \ 菜单键

↑知道的欢迎在下面评论!!!

发布了8 篇原创文章 · 获赞 1 · 访问量 1100

猜你喜欢

转载自blog.csdn.net/cjz2005/article/details/104407064