Table of Contents

HKMGetDevInfo 获得设备信息

功能

获得键鼠模拟器的设备信息

参数

  • 参数1: 设备对象:无类型指针。使用HKMOpen可以创建它。
  • 参数2: 序号,可取值如下:
    • 1: 设备类型,最新版返回2
    • 2: 固件版本,返回值中,0-15位是修订号,16-23位是副版本号,24-31位是主版本号。
    • 3: 运行时间,返回值是从通电或者复位开始运行的毫秒数,断电和复位都会归零。系统休眠时不计时。这个时间精度不高,有误差。
    • 4: 通电时间。返回值是从通电开始运行的毫秒数,断电会归零,复位不会归零。系统休眠时不计时。这个时间精度不高,有误差。
    • 6: 复位次数。
    • 7: 运行状态。设备未连接返回0xFFFFFFFF,设备准备中返回0,正常工作状态返回1,编辑状态返回2,禁止操作状态返回3。
    • 8: USB设备接口的VID值
    • 9: USB设备接口的PID值
    • 10: USB设备接口的设备版本值
  • 参数3: 是否鼠标:布尔值
    • True: 自动获得设备信息,如果同时有键盘模式或者鼠标模式的设备,获得鼠标模式的设备信息
    • False: 自动获得设备信息,如果同时有键盘模式或者鼠标模式的设备,获得键盘模式的设备信息

返回值

无符号32位整型数,返回值由参数2决定。

C#例子

uint dwDevId;
IntPtr lpDev;
dwDevId = SkmCore.HKMSearchDevice(0x1234, 0xABCD, 0);
if (dwDevId == 0xFFFFFFFF)
{
    Console.WriteLine("未找到键鼠模拟器");
    return;
}
lpDev = SkmCore.HKMOpen(dwDevId, 0);
if (lpDev == IntPtr.Zero)
{
    Console.WriteLine("打开键鼠模拟器失败");
    return;
}
Console.WriteLine($"键鼠模拟器固件版本号:{SkmCore.HKMGetDevInfo(lpDev, 2, false):X8}");
SkmCore.HKMClose(lpDev);

C语言例子

DWORD dwDevId;
LPVOID lpDev;
dwDevId=HKMSearchDevice(0x1234,0xABCD,0);
if(dwDevId==0xFFFFFFFF)
{
    printf("未找到键鼠模拟器\n");
    return 0;
}
lpDev=HKMOpen(dwDevId,0);
if(lpDev==NULL)
{
    printf("打开键鼠模拟器失败\n");
    return 0;
}
printf("键鼠模拟器固件版本号:%08X\n",HKMGetDevInfo(lpDev,2,FALSE));
HKMClose(lpDev);