HKMGetDevString 获得设备字符串
功能
获得设备相关的字符串
参数
- 参数1: 设备对象:无类型指针。使用HKMOpen可以创建它。
- 参数2: 序号:无符号32位整型数。用于指定要获取的字符串序号,可取值如下:
- 1: 制造商
- 2: 产品名
- 参数3: 是否鼠标:布尔值
- True: 自动获得设备字符串,如果同时有键盘模式或者鼠标模式的设备,获得鼠标模式的设备字符串
- False: 自动获得设备字符串,如果同时有键盘模式或者鼠标模式的设备,获得键盘模式的设备字符串
- 参数4: 字符串长度:无符号32位整型数指针。用于接收返回值为非NULL时的字符串长度(字符串长度包含'\0')。需要时可将取值设为NULL。
返回值
字符串(Unicode/Ansi)。失败返回NULL。成功返回字符串指针,字符串默认为Unicode字符串,也可以通过HKMSetMode修改为Ansi字符串。字符串指针在设备关闭时会被释放,不需要单独释放,但需要注意数据可能会被后续调用此函数的数据覆盖。
C#例子
uint dwDevId;
IntPtr lpDev;
string manufacturer;
dwDevId = SkmCore.HKMSearchDevice(0x1234, 0xABCD, 0);
if (dwDevId == 0xFFFFFFFF)
{
Console.WriteLine("未找到键鼠模拟器");
return;
}
lpDev = SkmCore.HKMOpen(dwDevId, 0);
if (lpDev == IntPtr.Zero)
{
Console.WriteLine("打开键鼠模拟器失败");
return;
}
manufacturer = SkmCore.HKMGetDevString(lpDev, 1, false);
if (manufacturer != null)
Console.WriteLine($"制造商:{manufacturer}");
SkmCore.HKMClose(lpDev);
C语言例子
DWORD dwDevId;
LPVOID lpDev;
LPWSTR lpStr;
setlocale(LC_ALL,"chs");//printf输出Unicode字符串要设置此参数才能显示
dwDevId=HKMSearchDevice(0x1234,0xABCD,0);
if(dwDevId==0xFFFFFFFF)
{
printf("未找到键鼠模拟器\n");
return 0;
}
lpDev=HKMOpen(dwDevId,0);
if(lpDev==NULL)
{
printf("打开键鼠模拟器失败\n");
return 0;
}
lpStr=HKMGetDevString(lpDev,1,false,NULL);
if(lpStr!=NULL)
printf("制造商:%S\n",lpStr);
HKMClose(lpDev);