Попробуй это:
procedure TForm1.Button1Click(Sender: TObject); var SerialNum : dword;a, b : dword;Buffer : array [0..255] of char;begin if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), @SerialNum, a, b, nil, 0) thenLabel1.Caption := IntToStr(SerialNum);end; |
Исправленную версию прислал:
Алексей Коган FIDOnet 2:5064/7.69 Russia, Stavropol дополняет:
Должен заметить, что GetVolumeInformation возвращает серийный номер ТОМА, а не винчестера, то есть, если заменить C:\ на D:\, то номерок-то и поменяется... Определение серийного номера винчестера несколько сложнее, я встречал этот пример в одной из конференций, да и то оно не работало под NT/2000, кажется. В любом случае оглавление надо поправить, чтобы не дезинформировать читателей.
Поправляю... [000125]