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

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
19.01.2006, 09:29
    #33490801
Dimkas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Билдера 6 прочитать серийный номер HDD
ну и очевидно


с уважением,
Дмитрий Жучков
Код: plaintext
1.
2.
 uses 
  Windows;
...
Рейтинг: 0 / 0
19.01.2006, 22:08
    #33493037
AndreiNz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Билдера 6 прочитать серийный номер HDD
GetVolumeInformation даст результат специфичный для текущего раздела. Тоесть если у вас 3 партишена на диске, то (для) каждый из них будет возвращать свое значение. Балее того, переформатировав диск вы получите новое значение, отличное от предыдущего. Где-то в инете был примерчик, который выдает то что нужно. Ищите..
...
Рейтинг: 0 / 0
23.01.2006, 13:59
    #33497284
yellow5
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Билдера 6 прочитать серийный номер HDD
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
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как из Билдера 6 прочитать серийный номер HDD / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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