2016-01-04 120 views
1

我能夠獲得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的函數調用來獲取名稱?

回答

0

這是我從MSDN論壇獲得的答案: 這些名稱不是以可查詢的方式存儲在系統中的。你必須看看類型定義,以知道它們是什麼

這意味着我將不得不比較從函數得到的密鑰和定義的密鑰。

我希望命名和/或描述存儲在某處,所以我不必根據系統語言翻譯命名。這是因爲鍵值是以系統語言返回的。

相關問題