Показать сообщение отдельно
Старый 30.05.2009, 00:31   #11
Рыцарь
 
Аватар для TAMBIK
 
Регистрация: 03.03.2009
Сообщений: 773
Сказал Спасибо: 361
Имеет 300 спасибок в 168 сообщенях
TAMBIK на пути к лучшему
По умолчанию

наткнулся в инете.
Код:
Как получить серийный номер тома жесткого диска?

21 авг 2001 (вторник), 10:03:09
Как получить серийный номер тома жесткого диска?
Procedure TForm1.Button1Click(SEnder: TObject);
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : Integer;
Begin
GetVolumeInformation('C:\',VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH);
Memo1.Lines.Add('VName = '+VolumeName);
Memo1.Lines.Add('SerialNo = $'+IntToHex(VolumeSerialNo,8));
Memo1.Lines.Add('CompLen = '+IntToStr(MaxComponentLength));
Memo1.Lines.Add('Flags = $'+IntToHex(FileSystemFlags,4));
Memo1.Lines.Add('FSName = '+FileSystemName);
End;
Как изменить серийный номер диска?

Серийный номер записан в загрузочном секторе. Для FAT дисков - это 4 байта начинающиеся со смещения 0x27; для NTFS дисков - это 8 байт, начинающихся со смещения 0x48. Для изменения, т.е. в качестве редактора, вполне подойдет Diskprobe из Resource Kit.
Код:
Совет 215. Как прочитать серийный номер диска

Новая библиотека Microsoft Scripting Runtime содержит иерархию FileSystemObject, состоящую из нескольких объектов, которые позволяют получать информацию о дисках, папках и файлах. Например, вы можете получить серийный номер диска с помощью такого кода:
Листинг 1.

' получаем серийный номер диска c:
Dim fso As New Scripting.FileSystemObject
Dim dr As Scripting.Drive
' получаем ссылку к объекту Drive
Set dr = fso.GetDrive("c")
Print Hex$(dr.SerialNumber)

А используя свойство FreeSpace объекта Drive можно также проверить, достаточно ли у вас свободного места на диске:
Листинг 2.

Print "На диске C есть " & dr.FreeSpace & " свободных байт"

Более подробно об этом можно прочитать в Справке VB в разделах Dictionary и FileSystemObject.

Последний раз редактировалось TAMBIK, 30.05.2009 в 00:42.
TAMBIK вне форума   Ответить с цитированием