Code: |
type TRegistryRO = class (TRegistry) function OpenKeyRO (const Key: string): Boolean; end; { это уже ветхая история - был один глюк у D3}
implementation
uses WAPIInfo, Windows, SysUtils, StrUtils;
function TRegistryRO.OpenKeyRO (const Key: string): Boolean; function IsRelative(const Value: string): Boolean; begin Result := not ((Value <> '') and (Value[1] = '\')) end; var TempKey: HKey; S: string; Relative: Boolean; begin S := Key; Relative := IsRelative(S); if not Relative then Delete(S, 1, 1); TempKey := 0; Result := RegOpenKeyEx(GetBaseKey(Relative), PChar(S), 0, KEY_READ, TempKey) = ERROR_SUCCESS; if Result then begin if (CurrentKey <> 0) and Relative then S := CurrentPath + '\' + S; ChangeKey(TempKey, S); end; end;
function GetBIOSDate : string; const BIOSDatePtr = $0ffff5; SystemKey = 'HARDWARE\DESCRIPTION\System'; BiosDateParam = 'SystemBiosDate'; var p : pointer; s : string[128]; begin if OSisNT then begin with TRegistryRO.Create do try RootKey := HKEY_LOCAL_MACHINE; if OpenKeyRO (SystemKey) then begin s := ReadString (BiosDateParam); end; finally Free; end; { of try} end else try s[0] := #8; p := Pointer(BIOSDatePtr); Move (p^, s[1], 8); except FillChar (s[1], 8, '9'); end; { of try} Result := copy (s, 1, 2) + copy (s, 4, 2) + copy (s, 7, 2); end;
function GetVideoDate : string; const VideoDatePtr = $0C0000; SystemKey = 'HARDWARE\DESCRIPTION\System'; VideoDateParam = 'VideoBiosDate'; var p : pointer; s : string[255]; begin if OSisNT then begin with TRegistryRO.Create do try RootKey := HKEY_LOCAL_MACHINE; if OpenKeyRO (SystemKey) then s := ReadString (VideoDateParam) else s := 'NT/de/tected'; finally Free; end; { of try} end else try s[0] := #255; p := Pointer(VideoDatePtr + 60); { первые $60 - строка CopyRight} Move (p^, s[1], 255); if pos('/', s) > 2 then s := copy (s, pos('/', s) - 2, 8) else begin p := Pointer(VideoDatePtr + 60 + 250); Move (p^, s[1], 255); if pos('/', s) > 2 then s := copy (s, pos('/', s) - 2, 8); end; except FillChar (s[1], 8, '9'); end; { of try} Result := copy (s, 1, 2) + copy (s, 4, 2) + copy (s, 7, 2); end; |
Получить информацию о BIOSе
Получить информацию о BIOSе
Содержание материала
Страница 2 из 3
Новые статьи
Ранние статьи
Случайные статьи
- Подробности
- Родительская категория: Работа с железом
- Категория: BIOS
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!