delphi: получить номер материнской платы
не выйдет!
Мне не требуется меганадежность
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI
const
cBIOSName = $FE061;
cBIOSDate = $FFFF5;
cBIOSExtInfo = $FEC71;
cBIOSCopyright = $FE091;
rkBIOS = {HKEY_LOCAL_MACHINE\}'HARDWARE\DESCRIPTION\System';
rvBiosDate = 'SystemBiosDate';
rvBiosID = 'Identifier';
rvBiosVersion = 'SystemBiosVersion';
rvComputerClass = 'Computer';
...
function isNT: Boolean;
begin
Result := (GetOSVerInfo = VER_PLATFORM_WIN32_NT);
end;
.....
procedure TKey.LoadHardwareProfile;
begin
FHardwareProfile1 := '';
FHardwareProfile2 := '';
with TRegistry.Create do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(rkBIOS, false) then
begin
if ValueExists(rvBIOSID) then
FHardwareProfile1 := ReadString(rvBIOSDate);
{ ReadString(rvBIOSID);}
if ValueExists(rvBIOSDate) then
FHardwareProfile2 := ReadString(rvBIOSDate);
CloseKey;
end;
Free;
end;
if (IsNT=false) or FHardwareProfile1='') and
(FHardwareProfile2='' then
begin
try
FHardwareProfile1 := String(PChar(ptr(cBIOSDate;
//String(PChar(ptr(cBIOSName;
FHardwareProfile2 := String(PChar(ptr(cBIOSDate;
except
end;
end;
end;
Зы: буду рад комментариям по существу. Основная проблема в этом коде - для разных окон, нарпример, 98 и ХР будут получаться разные идентификаторы, кроме Bios Date.
Мб Mac адрес сетевухи тогда уж получать?
Оставить комментарий
Dmitriy82
Подскажите, как сабж. Т.е. нужен какой-то идентификатор, который у разных компов будет совпадать с очень низкой вероятностью. Заранее спасибо.