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

•  DeLiKaTeS Tetris (Тетрис)  4 864

•  TDictionary Custom Sort  6 840

•  Fast Watermark Sources  6 627

•  3D Designer  9 590

•  Sik Screen Capture  6 969

•  Patch Maker  7 405

•  Айболит (remote control)  7 353

•  ListBox Drag & Drop  6 216

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

•  Графические эффекты  7 530

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

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

•  Canvas Drawing  6 047

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

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

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

•  Paint on Shape  3 029

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

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

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

•  Пазл Numbrix  2 640

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

•  Игра HIP  2 369

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

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

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

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

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

•  HEX View  2 748

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

 
скрыть

  Форум  

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

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