РЕЕСТР 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
|