Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

как вытащить серийник BIOS в NT ?   Найти похожие ветки 

 
Device   (2002-06-16 03:37) [0]

собственно сабж %)


 
~Rand~   (2002-06-16 08:44) [1]

Удалено модератором


 
Device   (2002-06-16 09:22) [2]

Сенксъ


 
nick_sniper   (2002-06-19 08:29) [3]

Попробуй вот так: (если что - пиши на мыло)

procedure TMachine.GetInfo;
var
bdata :pchar;
KeyState : TKeyBoardState;
sl: TStrings;
const
cBIOSName = $FE061;
cBIOSDate = $FFFF5;
cBIOSExtInfo = $FEC71;
cBIOSCopyright = $FE091;

rkBIOS = {HKEY_LOCAL_MACHINE\}"HARDWARE\DESCRIPTION\System";
rvBiosDate = "SystemBiosDate";
rvBiosID = "Identifier";
rvBiosVersion = "SystemBiosVersion";

rvComputerClass = "Computer";

begin
sl:=TStringList.Create;
try
FLastBoot:=Now-(GetTickCount/1000)/(24*3600);
except
FLastBoot:=0;
end;
FSystemUpTime:=GetSystemUpTime;
FName:=GetMachine;
FUser:=GetUser;
if isNT then begin
with TRegistry.Create do begin
rootkey:=HKEY_LOCAL_MACHINE;
if OpenKey(rkBIOS,false) then begin
if ValueExists(rvBIOSID) then
FBiosName:=ReadString(rvBIOSID);
if ValueExists(rvBIOSVersion) then begin
bdata:=AllocMem(255);
try
readbinarydata(rvBIOSVersion,bdata^,255);
FBIOSCopyright:=strpas(pchar(bdata));
except
end;
FreeMem(bdata);
end;
if ValueExists(rvBIOSDate) then
FBIOSDate:=ReadString(rvBIOSDate);
closekey;
end;
free;
end;
end else begin
FBIOSName:=string(pchar(ptr(cBIOSName)));
FBIOSDate:=string(pchar(ptr(cBIOSDate)));
FBIOSCopyright:=string(pchar(ptr(cBIOSCopyright)));
FBIOSExtendedInfo:=string(pchar(ptr(cBIOSExtInfo)));
end;
GetKeyboardState(KeyState);
FCapsLock:=KeyState[VK_CAPITAL]=1;
FNumLock:=KeyState[VK_NUMLOCK]=1;
FScrollLock:=KeyState[VK_SCROLL]=1;
GetClassDevices(ClassKey,rvComputerClass,DescValue,sl);
if sl.Count>0 then
FComp:=sl[0]
else
FComp:="";
sl.Free;
end;

procedure GetVideoBIOSInfo(var Version, Date: string);
var
StrData :PChar;
const
rk = {HKEY_LOCAL_MACHINE\}"HARDWARE\DESCRIPTION\System";
rvVideoBiosDate = "VideoBiosDate";
rvVideoBiosVersion = "VideoBiosVersion";
begin
with TRegistry.Create do begin
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey(rk,false) then begin
if ValueExists(rvVideoBIOSVersion) then begin
try
StrData:=StrAlloc(255);
ReadBinaryData(rvVideoBIOSVersion,StrData^,151);
Version:=StrPas(PChar(StrData));
StrDispose(StrData);
except
end;
end;
if ValueExists(rvVideoBIOSDate) then
Date:=ReadString(rvVideoBIOSDate);
CloseKey;
end;
Free;
end;
end;


 
Vladislav   (2002-06-19 09:31) [4]

Пример выше сработает только если админовские права. Для пользователя с ограниченными правами доступ к это ветке в реестре будет закрыт. Выход: либо расшаривать права на ветку, либо использовать вместо OpenKey метод OpenKeyReadOnly (этот метод появился в классе начиная с D4)


 
nick_sniper   (2002-06-19 18:42) [5]

Если внести изменения он будет работать ?



Страницы: 1 вся ветка

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.005 c
1-95851
skyslider
2002-08-17 22:38
2002.08.29
Как удалить выделенную строку в StringGrid


1-95837
Akim2
2002-08-16 23:19
2002.08.29
Подправить ComCtrls


7-95992
Device
2002-06-16 03:37
2002.08.29
как вытащить серийник BIOS в NT ?


1-95888
VID
2002-08-17 16:12
2002.08.29
Вставка рисунка в RichEdit


3-95648
sanilo
2002-08-07 16:38
2002.08.29
MS SQL Server 2000+Delphi+1C





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский