如何在C ++中使用GUID查找设备

时间:2012-05-08 14:43:41

标签: c++ device guid hid

这是一个2部分问题。

首先,这是我的代码:

#include<iostream>
#include<Windows.h>

extern "C"
{
#include<hidsdi.h>
#include<SetupAPI.h>
}

int main()
{
    int iQuit;
    GUID guid;

    HidD_GetHidGuid(&guid);
    //SetupDiGetClassDevs(NULL, NULL, NULL, 

    std::cout << "testing program" << std::endl;
    std::cout << guid.Data1 << std::endl;
    std::cout << guid.Data2 << std::endl;
    std::cout << guid.Data3 << std::endl;
    std::cout << guid.Data4 << std::endl;

    std::cin >> iQuit;

    return 0;
}

结果打印出来:

1293833650
61807
4559
//Data4 prints out e pie for some reason.

所以我的第一个问题是,有没有办法检查我在这里的guid属于哪个设备?我看过设备管理器部分,似乎无法找到它。

我的第二个问题是如何遍历所有设备并将所有guid存储在计算机上?

任何建议和帮助将不胜感激。抱歉长信息

由于

1 个答案:

答案 0 :(得分:3)

函数HidD_GetHidGuid返回所有HID类设备的GUID,而不是单个设备的GUID。

要枚举所有设备,请查看SetupDiGetClassDevs示例5。