VB的多媒体按键模拟

最近在实验室一边写作业一边用实验室电脑听歌。由于实验室桌子的空间有限,于是键盘被我立起来放在格子壁上。

但是这样就有一个问题,有时候需要切歌的时候按键盘上的多媒体键就非常不方便了。考虑了下,如果在显示器下面的空间放几个控制按钮,连到单片机上,然后单片机将按键数据传给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。也懒得管了,能用就行,我也没啥强迫症。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...