Книга: Delphi. Учимся на примерах

Полный исходный код модуля

Полный исходный код модуля

Полный исходный код модуля программы настройки Windows представлен в листинге 12.1.

Листинг 12.1. Модуль программы настройки Windows

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Registry;
type TForm1 = class(TForm)
 Button1: TButton;
 GroupBox1: TGroupBox;
 CheckBox1: TCheckBox;
 CheckBox2: TCheckBox;
 CheckBox3: TCheckBox;
 procedure Button1Click(Sender: TObject);
 procedure FormCreate(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
end;
var
 Form1: TForm1;
 reg: Tregistry;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
 if CheckBox1.Checked then
 begin //если установлен флажок напротив первой опции
  reg:= TRegistry.Create; //открываем реестр
  //открываем ветку реестра
  reg.RootKey:= HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEMCurrentControlSetServicesCdrom', True); //открываем требуемый раздел в реестре
  //записываем соответствующий ключ
  reg.WriteInteger('Autorun', 1);
  reg.CloseKey;
 end else begin //иначе…
  reg:= TRegistry.Create;
  reg.RootKey:= HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEMCurrentControlSetServicesCdrom', True);
  //…отключаем эту возможность
  reg.WriteInteger('Autorun', 0);
  reg.CloseKey;
 end;
 //Таким же образом обрабатываем остальные опции
 //Для опции "Отключить свойства экрана":
 if CheckBox2.Checked then begin
  reg:= TRegistry.Create;
  reg.RootKey:=HKEY_CURRENT_USER;
  reg.OpenKey('SoftwaremicrosoftWindowsCurrentVersion' +
   'PoliciesSystem', True);
  //отключить свойства экрана
  reg.WriteInteger('NoDispCPL', 1);
  reg.CloseKey;
 end else begin
  reg:= TRegistry.Create;
  reg.RootKey:= HKEY_CURRENT_USER;
  reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersion'+
   'PoliciesSystem', True);
  //Восстановить свойства экрана
  reg.WriteInteger('NoDispCPL', 0);
  reg.CloseKey;
 end;
 //Для опции "Заблокировать реестр":
 if CheckBox3.Checked then begin
  reg:= TRegistry.Create;
  reg.RootKey:= HKEY_CURRENT_USER;
  reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersion' +
   'PoliciesSystem', True);
  //Заблокировать реестр
  reg.WriteInteger('DisableRegistryTools', 1);
  reg.CloseKey;
 end else begin
  reg:= TRegistry.Create;
  reg.RootKey:= HKEY_CURRENT_USER;
  reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersion' +
   'PoliciesSystem', True);
  //открыть доступ к реестру
  reg.WriteInteger('DisableRegistryTools', 0);
  reg.CloseKey;
 end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 reg:= TRegistry.Create;//открываем реестр
 //настройки для текущего пользователя
 reg.RootKey:= HKEY_CURRENT_USER;
 reg.OpenKey('SYSTEMCurrentControlSetServicesCdrom', False); //открываем раздел
 if reg.ValueExists('Autorun') then //если ключ существует
  if reg.readinteger('autorun') = 1 //и если он равен 1,
   then //то устанавливаем флажок первой опции
    CheckBox1.Checked:= True;
 reg.CloseKey;//закрываем реестр
 //Таким же образом проверяем остальные опции
 //Для опции "Отключить свойства экрана":
 reg:= TRegistry.Create;
 reg.RootKey:= HKEY_CURRENT_USER;
 reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersion' +
  'PoliciesSystem', False);
 if reg.ValueExists('NoDispCPL') then
  if reg.ReadInteger('NoDispCPL') = 1 then CheckBox2.Checked:= True;
 reg.CloseKey;
 //для опции "Заблокировать реестр":
 reg:= TRegistry.Create;
 reg.RootKey:= HKEY_CURRENT_USER;
 reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersion' +
  'PoliciesSystem', False);
 if reg.ValueExists('DisableRegistryTools') then
  if reg.ReadInteger('DisableRegistryTools') = 1 then CheckBox3.Checked:= True;
 reg.CloseKey;
end;
end.

? Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter_12.

Оглавление книги


Генерация: 0.096. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз