Форум — Ответы     (  К темам )
 ?  Алексей: ID компьютера (03-12-2002 15:43:23)
Вопрос, возможно, не по-теме, но...
Надо быстро узнать с компа какую-нить уникальную строчку данных. Было бы идеально считать сер. номер биоса или мамы или проца (но посл. по-моему можна выкл. в биосе так что не подходит). Я сейчас замутил с комбинацией размера винта, сер. номера винды и даты ее инстал. -- но это тупо. Может можна как-то одной командой считать что-то там из нутра компа?
Можна считать MAC-адрес сетевухи, но не все ведь компы ее имеют...
Помогите, плиз...
 Павел (06-12-2002 12:43:17)
Никак.
Если только не разрешить в биосе и проверять номер проца
(А если некто захочет заменить сгоревшую мать и т.д.?)
Но ведь могут захотеть поменять и проц.
 Владимир (12-12-2002 13:51:12)
Можете попробовать по винчестеру, например по SerialNo

void __fastcall TForm1::Button1Click(TObject *Sender)
{
char VolumeName[255], FileSystemName[100];
unsigned long VolumeSerialNo, MaxComponentLength, FileSystemFlags; // DWORD
AnsiString sPuth = Edit1->Text; // Например: "c:"

GetVolumeInformation(sPuth.c_str(), VolumeName, 255 ,&VolumeSerialNo,
&MaxComponentLength, &FileSystemFlags,
FileSystemName, 100);

Memo1->Lines->Add("Drive = "+sPuth);
Memo1->Lines->Add("Имя тома = "+AnsiString(VolumeName));
Memo1->Lines->Add("SerialNo = "+IntToHex((int)VolumeSerialNo,8));
Memo1->Lines->Add("CompLen = "+IntToStr(MaxComponentLength));
Memo1->Lines->Add("Flags = "+IntToHex((int)FileSystemFlags,4));
Memo1->Lines->Add("Файловая система = "+AnsiString(FileSystemName));

AnsiString sType="";
switch(GetDriveType(sPuth.c_str())){
case 0 : sType = "The drive type cannot be determined"; break;
case 1 : sType = "The root directory does not exist"; break;
case DRIVE_REMOVABLE: sType = "The disk can be removed"; break;
case DRIVE_FIXED : sType = "The disk cannot be removed"; break;
case DRIVE_REMOTE : sType = "The drive is remote (network) drive"; break;
case DRIVE_CDROM : sType = "The drive is a CD-ROM drive"; break;
case DRIVE_RAMDISK : sType = "The drive is a RAM disk"; break;
}

Memo1->Lines->Add(sType);

}
//---------------------------------------------------------------------------