Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 804

•  TDictionary Custom Sort  5 914

•  Fast Watermark Sources  5 715

•  3D Designer  8 490

•  Sik Screen Capture  6 051

•  Patch Maker  6 496

•  Айболит (remote control)  6 485

•  ListBox Drag & Drop  5 350

•  Доска для игры Реверси  95 015

•  Графические эффекты  6 689

•  Рисование по маске  5 819

•  Перетаскивание изображений  4 873

•  Canvas Drawing  5 246

•  Рисование Луны  4 970

•  Поворот изображения  4 517

•  Рисование стержней  3 195

•  Paint on Shape  2 442

•  Генератор кроссвордов  3 314

•  Головоломка Paletto  2 626

•  Теорема Монжа об окружностях  3 416

•  Пазл Numbrix  2 255

•  Заборы и коммивояжеры  2 914

•  Игра HIP  1 883

•  Игра Go (Го)  1 800

•  Симулятор лифта  2 138

•  Программа укладки плитки  1 864

•  Генератор лабиринта  2 304

•  Проверка числового ввода  1 991

•  HEX View  2 301

•  Физический маятник  1 962

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Как получить информацию о BIOS в Windows NT, 2000, XP




В NT/2000/XP не получится прочитать значения прямо из BIOS, однако, ничего не мешает нам считать нужные значения из реестра.


procedure TBIOSInfo.GetRegInfoWinNT;
var
  Registryv: TRegistry;
  RegPath: string;
  sl: TStrings;
begin
  Params.Clear;
  RegPath := '\HARDWARE\DESCRIPTION\System';
  registryv := tregistry.Create;
  registryv.rootkey := HKEY_LOCAL_MACHINE;
  sl := nil;
  try
    registryv.Openkey(RegPath, false);
    ShowMessage('BIOS Date: ' + RegistryV.ReadString('SystemBiosDate'));
    sl := ReadMultirowKey(RegistryV, 'SystemBiosVersion');
    ShowMessage('BIOS Version: ' + sl.Text);
  except
  end;
  Registryv.Free;
  if Assigned(sl) then
    sl.Free;
end;

На всякий пожарный:


// следующий метод получает многострочные значения из реестра
// и преобразует их в TStringlist

function ReadMultirowKey(reg: TRegistry; Key: string): TStrings;
const
  bufsize = 100;
var
  i: integer;
  s1: string;
  sl: TStringList;
  bin: array[1..bufsize] of char;
begin
  try
    result := nil;
    sl := nil;
    sl := TStringList.Create;
    if not Assigned(reg) then
      raise Exception.Create('TRegistry object not assigned.');
    FillChar(bin, bufsize, #0);
    reg.ReadBinaryData(Key, bin, bufsize);
    i := 1;
    s1 := '';
    while i < bufsize do
    begin
      if ord(bin[i]) >= 32 then
        s1 := s1 + bin[i]
      else
      begin
        if Length(s1) > 0 then
        begin
          sl.Add(s1);
          s1 := '';
        end;
      end;
      inc(i);
    end;
    result := sl;
  except
    sl.Free;
    raise;
  end;
end;





Похожие по теме исходники

Non Rectangular Windows

Windows Transparency

Windows Alpha-channel

Progress Windows

 

Popup Info Windows

Windows Sorting

RawWrite for Windows

Windows Desktops

 

Сообщения между процессами Windows




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте