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

•  Animation Loaders  702

•  DeLiKaTeS Tetris (Тетрис)  5 705

•  TDictionary Custom Sort  7 659

•  Fast Watermark Sources  7 349

•  3D Designer  10 556

•  Sik Screen Capture  7 876

•  Patch Maker  8 101

•  Айболит (remote control)  8 157

•  ListBox Drag & Drop  6 951

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

•  Графические эффекты  8 224

•  Рисование по маске  7 613

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

•  Canvas Drawing  6 583

•  Рисование Луны  6 511

•  Поворот изображения  5 685

•  Рисование стержней  4 606

•  Paint on Shape  3 302

•  Генератор кроссвордов  4 292

•  Головоломка Paletto  3 435

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

•  Пазл Numbrix  2 756

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

•  Игра HIP  2 469

•  Игра Go (Го)  2 455

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

•  Программа укладки плитки  2 297

•  Генератор лабиринта  3 024

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

•  HEX View  2 932

 
скрыть

  Форум  

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-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

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