Delphi. Учимся на примерах | страница 42



>

> //для опции "Заблокировать реестр":

> reg:= TRegistry.Create;

> reg.RootKey:= HKEY_CURRENT_USER;

> reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\' +

>  'Policies\System', False);

> if reg.ValueExists('DisableRegistryTools') then

>  if reg.ReadInteger('DisableRegistryTools') = 1 then CheckBox3.Checked:= True;

> reg.CloseKey;

>end;

При создании формы мы проверяем, какие из опций уже установлены. Если опция уже установлена, то устанавливаем соответствующий флажок.

Обработчик события OnClick для кнопки Выполнить:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> if CheckBox1.Checked then

> begin //если установлен флажок напротив первой опции

>  reg:= TRegistry.Create; //открываем реестр

>  //открываем ветку реестра

>  reg.RootKey:= HKEY_LOCAL_MACHINE;

>  reg.OpenKey('SYSTEM\CurrentControlSet\Services\Cdrom', True); //открываем требуемый раздел в реестре

>  //записываем соответствующий ключ

>  reg.WriteInteger('Autorun', 1);

>  reg.CloseKey;

> end else begin //иначе…

>  reg:= TRegistry.Create;

>  reg.RootKey:= HKEY_LOCAL_MACHINE;

>  reg.OpenKey('SYSTEM\CurrentControlSet\Services\Cdrom', True);

>  //…отключаем эту возможность

>  reg.WriteInteger('Autorun', 0);

>  reg.CloseKey;

> end;

> //Таким же образом обрабатываем остальные опции

> //Для опции "Отключить свойства экрана":

> if CheckBox2.Checked then begin

>  reg:= TRegistry.Create;

>  reg.RootKey:=HKEY_CURRENT_USER;

>  reg.OpenKey('Software\microsoft\Windows\CurrentVersion\' +

>   'Policies\System', True);

>  //отключить свойства экрана

>  reg.WriteInteger('NoDispCPL', 1);

>  reg.CloseKey;

> end else begin

>  reg:= TRegistry.Create;

>  reg.RootKey:= HKEY_CURRENT_USER;

>  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\'+

>   'Policies\System', True);

>  //Восстановить свойства экрана

>  reg.WriteInteger('NoDispCPL', 0);

>  reg.CloseKey;

end;

> //Для опции "Заблокировать реестр":

> if CheckBox3.Checked then begin

>  reg:= TRegistry.Create;

>  reg.RootKey:= HKEY_CURRENT_USER;

>  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\' +

>   'Policies\System', True);

>  //Заблокировать реестр

>  reg.WriteInteger('DisableRegistryTools', 1);

>  reg.CloseKey;

> end else begin

>  reg:= TRegistry.Create;

>  reg.RootKey:= HKEY_CURRENT_USER;

>  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\' +

>   'Policies\System', True);

>  //открыть доступ к реестру

>  reg.WriteInteger('DisableRegistryTools', 0);

>  reg.CloseKey;

> end;

>end;

По нажатию кнопки Выполнить мы проверяем состояние каждого флажка. Если флажок установлен, то мы записываем в реестр ключ, который включает выбранную опцию, в противном же случае — просто отключаем эту опцию.