新版虚拟UsbzhVKM虚拟键盘鼠标
2022-09-15
959
0
搞了个新版本的虚拟键盘鼠标驱动,实现的功能如下:
可以看到,除了虚拟的键盘外,还有2个虚拟的鼠标。但这两个鼠标并不相同,其中一个是普通的鼠标,即相对坐标移动的鼠标,另一个是全坐标系鼠标(类似触摸屏功能)。
由于这个设备使用的是报告描述符复合实现的,故使用不同的ReportId实现对不同的设备通过应用层来SetReport.
设备 | ReportId | 数据长度 |
---|---|---|
普通鼠标 | 0xa0 | 4 |
虚拟键盘 | 0xa1 | 8 |
全坐标鼠标 | 0xa2 | 6 |
各设备的数据结构建如下:
typedef struct _GMOUSE_STRUCT
{
UCHAR ReportId; //A2
UCHAR Button;
USHORT X;
USHORT Y;
}GMOUSE_STRUCT;
typedef struct _MOUSE_STRUCT
{
UCHAR ReportId; //A0
UCHAR Button;
UCHAR X;
UCHAR Y;
UCHAR Wheel;
}MOUSE_STRUCT;
typedef struct _KEYBOARD_STRUCT
{
UCHAR ReportId; //A1
UCHAR Button;
UCHAR Ctrl;
UCHAR Reserved;
UCHAR Key[6];
}KEYBOARD_STRUCT;
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936