Gbenbam Ответов: 2

Мне нужен надежный жесткий диск серийный номер поиска на C++ программу или API-интерфейса Win32.


Я уже некоторое время охочусь за кодом извлечения жесткого диска c++, но все те, которые я видел, никогда не работали. Пожалуйста, кто-нибудь может сказать мне, где я могу получить проверенный и надежный код извлечения жесткого диска.

Hans Dietrich

Я не совсем понимаю, что вы подразумеваете под словом "доверенный", но имейте в виду, что существуют свободно доступные утилиты, которые можно использовать для изменения серийного номера HD. Поэтому, пока вы можете получить текущий серийный номер, не думайте, что он не может измениться.

2 Ответов

Рейтинг:
2

KarstenK

если вам нужен только серийный номер накопителя, это сделает свою работу. Но осторожно: это число Windows дает ему во время процесса форматирования. Это не номер производителя HD.

DWORD serialNumber = -1;

если( ::GetVolumeInformation(lpDrive, нуль, нуль, &ампер;серийный_номер, нуль, нуль, нуль, нуль ) )
{
TRACE(_T("серийный номер: %lu диска %s\n"), serialNumber, lpDrive);
}
еще
{
ASSERT(FALSE);
}


Рейтинг:
0

Nish Nishant

Если вам просто нужен серийный номер для логического разделения, вы можете использовать этот API: GetVolumeInformation.

Для последовательного идентификатора физического диска большинство людей используют WMI. Есть статья CP, которая показывает, как это сделать без WMI:

Получить серийный номер физического жесткого диска без WMI[^]

Убедитесь, что вы прочитали комментарии на форуме этой статьи - это может потребовать прав администратора на Vista/Windows 7.


Espen Harlinn

Хороший ответ :)

Sandeep Mewara

Комментарий от какого-то другого участника, опубликованный в качестве решения: обратная связь для решения 1:

Серийный номер жесткого диска отличается от серийного номера тома.. Вам нужно сделать кодирование аппаратного уровня, чтобы получить это...