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

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

•  TDictionary Custom Sort  6 069

•  Fast Watermark Sources  5 867

•  3D Designer  8 692

•  Sik Screen Capture  6 191

•  Patch Maker  6 623

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

•  ListBox Drag & Drop  5 478

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

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

•  Рисование по маске  6 020

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

•  Canvas Drawing  5 375

•  Рисование Луны  5 101

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

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

•  Paint on Shape  2 519

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

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

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

•  Пазл Numbrix  2 314

•  Заборы и коммивояжеры  3 000

•  Игра HIP  1 956

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

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

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

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

•  Проверка числового ввода  2 063

•  HEX View  2 386

•  Физический маятник  2 019

 
скрыть

  Форум  

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

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