15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как узнать серийный номер диска.

Автор: James Limm

При форматировании диска, операционная система записывает на него серийный номер. Нет гарантии, что этот номер окажется уникальным, однако, трудно себе представить, что для 32 битного значения найдётся дубликат :) Этот номер частенько используется программистами для защиты программы от копирования.

Объявления

Скопируйте следующий код в секцию объявлений проекта.

Private Declare Function GetVolumeInformation Lib _
"kernel32.dll" Alias "GetVolumeInformationA" (ByVal _
lpRootPathName As String, ByVal lpVolumeNameBuffer As _
String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength _
As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

 

Код

Function GetSerialNumber(strDrive As String) As Long
    Dim SerialNum As Long
    Dim Res As Long
    Dim Temp1 As String
    Dim Temp2 As String
    Temp1 = String$(255, Chr$(0))
    Temp2 = String$(255, Chr$(0))
    Res = GetVolumeInformation(strDrive, Temp1, _
    Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
    GetSerialNumber = SerialNum
End Function

 

Использование

Пример использования вышеприведённой функции:

Call MsgBox GetSerialNumber("C:")

 

После выполнения этой функции должно появиться диалоговое окошко с серийным номером диска C.