Получение всех устройств в системе - C#
Формулировка задачи:
Все что показывет Device Manager (включая скрытые устройства) можно посмотреть так:
Этот код вообще на C# написан? Может кто переделать на С# чтобы работал?
Листинг программы
- bool EnumerateDeviceCallback(DEVINST device_inst)
- {
- char driver_name[MAX_PATH];
- unsigned long len = MAX_PATH;
- CONFIGRET cr = CM_Get_DevNode_Registry_Property(device_inst, CM_DRP_DRIVER, NULL, driver_name, &len, 0);
- if(cr == CR_SUCCESS) {
- char device_desc[MAX_PATH];
- unsigned long len = MAX_PATH;
- cr =CM_Get_DevNode_Registry_Property(device_inst, CM_DRP_DEVICEDESC, NULL, device_desc, &len, 0);
- if(cr == CR_SUCCESS)
- printf("\n%s", device_desc);
- }
- return FALSE;
- }
- DEVINST EnumerateDeviceTree(DEVINST device_inst, bool (*callback)(DEVINST))
- {
- bool res = callback(device_inst);
- if(!res) {
- DEVINST device_ret = { 0 };
- DEVINST device_next = device_inst;
- while(CM_Get_Child(&device_next, device_next, 0) == CR_SUCCESS) {
- EnumerateDeviceTree(device_next, callback);
- device_ret = device_next;
- while(CM_Get_Sibling(&device_ret, device_ret, 0) == CR_SUCCESS)
- EnumerateDeviceTree(device_ret, callback);
- }
- return 0;
- }
- else
- return device_inst;
- }
- int main(int argc, char* argv[])
- {
- DEVINST device_root = { 0 };
- CONFIGRET cr = CM_Locate_DevNode(&device_root, NULL, 0);
- if(cr == CR_SUCCESS)
- EnumerateDeviceTree(device_root, EnumerateDeviceCallback);
- return 0;
- }
Решение задачи: «Получение всех устройств в системе»
textual
Листинг программы
- label1.Text += driverName.ToString() + Environment.NewLine;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д