2012-02-27 2 views

ответ

2

Попробуйте этот код в VB

Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long 
Private Sub Form_Load() 
    Dim Serial As Long 
    'Get the volume information 
    GetVolumeInformation "d:\", vbNullString, 255, Serial, 0, 0, vbNullString, 255 

    MsgBox Hex(Serial) 
End Sub 

Это должно служить доказательством концепции для тебя. Вы можете адаптировать это к своему выбору.

Взято отсюда: VB Forums

+0

Спасибо за ответы. Я просто хочу убедиться, что «Serial» получен независимо от ОС, является ли это так или просто конкретным хэшем, вычисленным Windows? – menjaraz

+0

На компакт-дисках действительно есть серийный номер. Он независим от ОС –

+0

Еще раз спасибо. Я принимаю ваш ответ, и я попытаюсь сделать порт Delphi и опубликовать его позже. Я добавляю тег [tag: language-agnostic] в Q. Надеюсь, что здесь будут опубликованы другие ответы (ответы). – menjaraz

1

Windows.GetVolumeInformation Синтаксис

GetVolumeInformation(
    lpRootPathName: PChar; {the path to the root directory} 
    lpVolumeNameBuffer: PChar; {the buffer receiving the volume name} 
    nVolumeNameSize: DWORD; {the maximum size of the buffer} 
    lpVolumeSerialNumber: PDWORD; {a pointer to the volume serial number} 
    var lpMaximumComponentLength: DWORD; {maximum file component name} 
    var lpFileSystemFlags: DWORD; {file system flags} 
    lpFileSystemNameBuffer: PChar; {the buffer receiving the file system name} 
    nFileSystemNameSize: DWORD {the maximum size of the file system name} 
): BOOL; {returns TRUE or FALSE} 

Delphi порт (немного адаптировано из Andrei G «s пост)

GetCDROMSerial сниппета:

образца Использование:

ShowMessage(Format('%X', [GetCDROMSerial('F')])); 
+0

Это мой порт Дельфийского Андрея (Протестировано с Delphi XE). – menjaraz

Смежные вопросы