# HKMGetDevString

名称 | HKMGetDevString 获得设备字符串
功能 | 获得设备相关的字符串。

参数

参数1　设备对象：无类型指针。使用HKMOpen可以创建它。
参数2　序号：无符号32位整型数。需要获取的字符串的序号。可取值如下：

值 | 说明
--- | ---
1 | 制造商
2 | 产品名

参数3　是否鼠标：布尔值。取false时，自动获得设备字符串，如果同时有键盘模式或者鼠标模式的设备，获得键盘模式的设备字符串。取true时，自动获得设备字符串，如果同时有键盘模式或者鼠标模式的设备，获得鼠标模式的设备字符串。
参数4　字符串长度：无符号32位整型数指针。用于接收返回值为非NULL时，返回字符串的字符数，不包括字符串结束符'\0'。不需要时可以取值为NULL。

返回值 | 字符串(Unicode/Ansi)。失败返回NULL，成功返回字符串地址。默认是Unicode字符串，可以通过HKMSetMode修改为Ansi字符串。字符串保存在设备对象的临时数据区中，无需单独释放，但是需要将内容尽快读出，防止被其它使用临时数据区的函数将数据改写了。
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=HKMGetString(lpDev,1,false); if(lpStr!=NULL) printf("制造商：%S\n",lpStr); HKMClose(lpDev);