РЕЕСТР WINDOWS: ТОЛЬКО ТРУСЫ НЕ ЛЕЗУТ HKEY!

Спецвыпуск Xakep, номер #017, стр. 017-092-5


ФАЙЛИКИ *.REG - ПАТЧИ ДЛЯ РЕЕСТРА

Реестр позволяет юзеру экспортировать разделы в файл *.reg. Эти файлики используются как патчи для реестра. То есть экспортировал раздел в *.reg, запустил на другом компе, и все в ажуре. И рыться нигде не надо. Быстро и практично, как и велел Х. Если ты большой извращенец, то можешь писать *.reg файлы сам, настраивая их, как хочешь. Можно сделать так, чтобы, если параметр существует, он не перезаписывался. Есть еще много мощных расколбасов.

Любой файл *.reg начинается со строчки REGEDIT4. Далее следует имя раздела, в который надо добавить\переписать параметры и их список в формате:

"имя"="значение"

"имя"=hex:значение

"имя"=dword:значение

в REG_SZ, REG_BIARY и REG_DWORD соответственно. В листинге нумбер ван ты увидишь пример простого *.reg-файла. Его функцией является сделать иконки размером 120x120. Но истинные возможности раскрываются, когда мы перейдем к шкодингу.

КОДИМ!

Кодить будем на "Delphi". Мой выбор - "Delphi 5", так как под него компонентов у меня горы. Создай форму, как на рисунке. Нам нужны объекты "Edit" и "Button". В "Edit" вводим размер значка (стандарт - 32). Но мы-то с тобой широкой души народ, поэтому выставь 120. Кайфешник! При разрешении 1024x768 на десктопе помещается только 20 значков :). Кнопочку жмем, чтобы воплотить в жизнь задуманное. В "Delphi" есть специальный тип для работы с реестром - "TRegistry". Чтобы описать тип, его надо добавить в раздел "Uses" без буквы T, то есть просто "Registry". Далее в описании переменных "var" опиши переменную "Reg" типа "TRegistry". В обработчике события "Button1.Click" запиши код, как в листинге. Программа простейшая, там нет проверки на ввод букв, так что постарайся их не вводить. В обработчике события нажатия пимпы "Button1.Click" мы сначала создаем объект типа "TRegistry", затем назначаем главным разделом HKCU и открываем раздел HKCU\Control Panel\Desktop\WindowMetrics. Наша цель - изменить параметр "ShellIconSize". Раз он строкового типа, то мы используем действие "WriteString". Для остальных типов тоже имеются действия.

НАПОСЛЕДОК...

Немало инфы по играм с реестром есть на пагах о "Delphi" и лично на моей. Что ж, hax0r, фраг тебе в сумку и лазить, смотреть, ковыряться. Траблы и расколбасы? Взмыль мне!

Листинги

unit Main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, StdCtrls, Registry;

type

TForm1 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Edit1: TEdit;

Button1: TButton;

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Reg : TRegistry;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

Reg := TRegistry.Create;

Reg.RootKey := HKEY_CURRENT_USER;

Reg.OpenKey('Control Panel\Desktop\WindowMetrics', True);

Назад на стр. 017-092-4  Содержание  Вперед на стр. 017-092-6