powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как из Билдера 6 прочитать серийный номер HDD
5 сообщений из 5, страница 1 из 1
Как из Билдера 6 прочитать серийный номер HDD
    #33490739
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как из Билдера 6 прочитать серийный номер HDD
...
Рейтинг: 0 / 0
Как из Билдера 6 прочитать серийный номер HDD
    #33490797
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не совсем то что надо (да ещё и на Паскале), но из той же оперы :)

function GetVolumeName(Path: string): string;
var
VolumeName, FSName: PChar;
VolumeNameLen, FSLen: DWORD;
SerNum: DWORD;
FSSize, MaxCL: Cardinal;
begin
VolumeNameLen := 255;
FSLen := 255;
GetMem(VolumeName, VolumeNameLen);
GetMem(FSName, FSLen);
if GetVolumeInformation(PChar(Path), VolumeName, VolumeNameLen, @SerNum, MaxCL, FSSize, FSName, FSLen) then
Result := IntToHex(SerNum) + StrPas(FSName)
else
Result := 'No info';
FreeMem(VolumeName, VolumeNameLen);
FreeMem(FSName, FSLen);
end;

с уважением,
Дмитрий Жучков
...
Рейтинг: 0 / 0
Как из Билдера 6 прочитать серийный номер HDD
    #33490801
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну и очевидно


с уважением,
Дмитрий Жучков
Код: plaintext
1.
2.
 uses 
  Windows;
...
Рейтинг: 0 / 0
Как из Билдера 6 прочитать серийный номер HDD
    #33493037
AndreiNz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetVolumeInformation даст результат специфичный для текущего раздела. Тоесть если у вас 3 партишена на диске, то (для) каждый из них будет возвращать свое значение. Балее того, переформатировав диск вы получите новое значение, отличное от предыдущего. Где-то в инете был примерчик, который выдает то что нужно. Ищите..
...
Рейтинг: 0 / 0
Как из Билдера 6 прочитать серийный номер HDD
    #33497284
yellow5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
void __fastcall TForm1::DriveComboBox1Change(TObject *Sender)
{
DWORD VolSN,MaxCompLen,FSFlags, FC,SPC,BPS,NC;
char VolName[255],FSName[100];
AnsiString s=UpperCase(DriveComboBox1->Drive)+":\\";
Label1->Caption=s;
if (GetVolumeInformation(s.c_str(),VolName,255,&VolSN,&MaxCompLen, &FSFlags,FSName,100))
{
Label2->Caption="Имя тома: "+AnsiString(VolName);
Label3->Caption="Файловая система: "+AnsiString(FSName);
if (GetDiskFreeSpace(s.c_str(), &SPC,&FC,&BPS,&NC))
{
Label4->Caption="Свободных байт: "+IntToStr(SPC*FC*BPS);
}
else
{
Label4->Caption="";
}
}
else
{
Label2->Caption="Диск не готов";
Label3->Caption="";
Label4->Caption="";
}
}
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как из Билдера 6 прочитать серийный номер HDD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]