Форум — Ответы ( К темам )
? | Алексей: 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); } //--------------------------------------------------------------------------- |