CM_Get_DevNode_Property_Keys有没有办法获取密钥的名称
问题描述:
我能够获得devnode的属性密钥(DEVPROPKEY)。但是我没有找到获取这些密钥的名称和/或描述的方法。 也可以使用CM_Get_DevNode_PropertyW来获取这些属性键的值。CM_Get_DevNode_Property_Keys有没有办法获取密钥的名称
如果我使用LOOP来获取密钥和值,我会获得除了密钥的名称之外的所有信息?
EDIT 这些键是在devpkey.h中预定义的,比如;
DEFINE_DEVPROPKEY(DEVPKEY_Device_DeviceDesc, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 2); // DEVPROP_TYPE_STRING
DEFINE_DEVPROPKEY(DEVPKEY_Device_HardwareIds, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 3); // DEVPROP_TYPE_STRING_LIST
目前,我认为唯一的方法是比较从函数得到的密钥与预定义的密钥。 使用Delphi我必须将所有这些密钥从C++代码转换为Delphi代码。 仍然我认为应该有一种方法可以通过cfgmgr.dll或setupapi.dll的函数调用来获取名称?
答
这是我从MSDN论坛获得的答案: 这些名称不是以可查询的方式存储在系统中的。你必须看看类型定义,以知道它们是什么
这意味着我将不得不比较从函数得到的密钥和定义的密钥。
我希望命名和/或描述存储在某处,所以我不必根据系统语言翻译命名。这是因为键值是以系统语言返回的。