Получить USB серийный номер C ++ - PullRequest
4 голосов
/ 23 июня 2010

Я ищу, чтобы получить серийный номер с карты памяти USB на Windows в C ++.

Я нашел множество примеров C # и c ++ для linux, но ни одного для c ++ и windows.

Редактировать

  • C ++ / CLI, к сожалению, не вариант.
  • Я ищу серийный номер устройства, а не файловую систему.ИЛИ «Путь к экземпляру устройства» AKA «InstanceID»

Ответы [ 3 ]

6 голосов
/ 05 августа 2012

У меня есть статья о том, как получить серийные номера USB для томов в C ++, без использования WMI

http://oroboro.com/usb-serial-number/

Есть хитрость, вы должны сопоставить USB-устройства с дисковыми томами. Вы хотите избежать WMI, если можете, потому что это ненадежно.

3 голосов
/ 23 июня 2010

Если C ++ является требованием, вам придется писать код COM. Немного неприятно по сравнению с кодом VB.NET, но в библиотеке MSDN есть очень хорошие примеры, вам просто нужно адаптировать запрос.

Помните, что приведенный вами пример не возвращает серийный номер самого устройства, только файловую систему на устройстве. Это так же хорошо, как и то, что у USB-устройств нет серийных номеров.

Серийные номера файловой системы тривиальны для дублирования, на случай, если вы подумываете об этом, чтобы написать какую-то схему принудительного лицензирования. Если это важно, вы должны использовать USB-устройство, которое было разработано для этой цели. Ключ. Взломать невозможно. И код C ++ для проверки лицензии будет доступен у производителя.

1 голос
/ 23 июня 2010

Серийный номер - это подраздел под HKLM\SYSTEM\CCS\Enum\USB\Vid_xxxx&Pid_yyyy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...