Table of Contents

HKMGetError 获得错误代码

功能

获得错误代码。如果要获得错误代码在设备对象有关函数执行后立刻执行该函数,执行其它设备对象有关函数会覆盖之前的值。

参数

  • 参数1: 设备对象:无类型指针。使用HKMOpen可以创建它。

返回值

无符号32位整型数。低16位是错误代码,高16位是错误编号。错误代码中,0是成功,低于57344是系统错误代码,与系统API"GetLastError"获得的值相同,具体值的解释可以在微软网站查看,高于或等于57344的错误代码如下:

说明 说明
0000(0) 成功 E020(57376) 打开设备失败
E001(57345) 失败 E021(57377) 通信失败
E002(57346) 无效的参数 E022(57378) 无访问权限
E003(57347) 无效的指针 E023(57379) 超时
E004(57348) 无效的对象 E024(57380) 运行应用失败
E005(57349) 无效的初始化值 E025(57381) 超出限制
E006(57350) 无效的数据 E026(57382) 获取DPI信息失败
E007(57351) 数据太大 E027(57383) 获取数据失败
E008(57352) 字符串太长 E028(57384) 设备失败
E009(57353) 数据区域太小 E029(57385) 设备超时
E00A(57354) 不支持
E00B(57355) 对象已存在
E00C(57356) 系统错误

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;
}
uint errorCode = SkmCore.HKMGetError(lpDev) & 0xFFFF;
Console.WriteLine($"错误代码:{errorCode:X4}");
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("错误代码:%04X\n",HKMGetError(lpDev) & 0xFFFF);
HKMClose(lpDev);