Получение всех устройств в системе - C#

Узнай цену своей работы

Формулировка задачи:

Все что показывет Device Manager (включая скрытые устройства) можно посмотреть так:
Листинг программы
  1. bool EnumerateDeviceCallback(DEVINST device_inst)
  2. {
  3. char driver_name[MAX_PATH];
  4. unsigned long len = MAX_PATH;
  5. CONFIGRET cr = CM_Get_DevNode_Registry_Property(device_inst, CM_DRP_DRIVER, NULL, driver_name, &len, 0);
  6. if(cr == CR_SUCCESS) {
  7. char device_desc[MAX_PATH];
  8. unsigned long len = MAX_PATH;
  9. cr =CM_Get_DevNode_Registry_Property(device_inst, CM_DRP_DEVICEDESC, NULL, device_desc, &len, 0);
  10. if(cr == CR_SUCCESS)
  11. printf("\n%s", device_desc);
  12. }
  13. return FALSE;
  14. }
  15. DEVINST EnumerateDeviceTree(DEVINST device_inst, bool (*callback)(DEVINST))
  16. {
  17. bool res = callback(device_inst);
  18. if(!res) {
  19. DEVINST device_ret = { 0 };
  20. DEVINST device_next = device_inst;
  21. while(CM_Get_Child(&device_next, device_next, 0) == CR_SUCCESS) {
  22. EnumerateDeviceTree(device_next, callback);
  23. device_ret = device_next;
  24. while(CM_Get_Sibling(&device_ret, device_ret, 0) == CR_SUCCESS)
  25. EnumerateDeviceTree(device_ret, callback);
  26. }
  27. return 0;
  28. }
  29. else
  30. return device_inst;
  31. }
  32. int main(int argc, char* argv[])
  33. {
  34. DEVINST device_root = { 0 };
  35. CONFIGRET cr = CM_Locate_DevNode(&device_root, NULL, 0);
  36. if(cr == CR_SUCCESS)
  37. EnumerateDeviceTree(device_root, EnumerateDeviceCallback);
  38. return 0;
  39. }
Этот код вообще на C# написан? Может кто переделать на С# чтобы работал?

Решение задачи: «Получение всех устройств в системе»

textual
Листинг программы
  1. label1.Text += driverName.ToString() + Environment.NewLine;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы