最近在实验室一边写作业一边用实验室电脑听歌。由于实验室桌子的空间有限,于是键盘被我立起来放在格子壁上。
但是这样就有一个问题,有时候需要切歌的时候按键盘上的多媒体键就非常不方便了。考虑了下,如果在显示器下面的空间放几个控制按钮,连到单片机上,然后单片机将按键数据传给PC,PC端用一个小程序执行模拟键盘输入就OK了。
为了验证模拟键盘的可行性,决定先用VB写一个模拟的demo。
基本用法是
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte,ByVal bScan As Byte,ByVal dwFlags As Long,ByVal dwExtraInfo As Long) Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long,ByVal wMapType As Long) As Long Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) keybd_event(&HB0,0) keybd_event(&HB0,&H2,0)
前面三行是声明,然后后面两行是调用。
keybd_event的用法如声明所示。
bVk是虚拟键盘码(可参考此处),上面的使用的是16进制,前面有个&H。此处用的B0是下一曲的键盘码
bScan是扫描码,可以直接用0.
dwFlag为按键状态,按下是0,弹起是2.
dwExtraInfo一般不用管。
debug的时候总是有问题,但直接运行OK。也懒得管了,能用就行,我也没啥强迫症。