Настройка Windows по средствам системного реестра

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

lue: String): boolean;

  1. Назначение: Получение ключа Name ветви корня RootKey бинарного значения Value в строковой форма, и возврат true, в случае успешного получения данных.
  2. Входные параметры: RootKey, Name
  3. Выходные параметры: Value
  4. Функция RegGetValueType:
  5. Заголовок: function RegGetValueType (RootKey: HKEY; Name: String; var Value: Cardinal): boolean;
  6. Назначение: Получение типа ключа Name ветви корня RootKey в Value, и возврат true, в случае его существования.
  7. Входные параметры: RootKey, Name
  8. Выходные параметры: Value
  9. Функция :
  10. Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;

Value: Cardinal): boolean;

  1. Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.
  2. Входные параметры: RootKey, Name, Value
  3. Выходные параметры: -
  4. Функция RegKeyExists:
  5. Заголовок: function RegKeyExists (RootKey: HKEY; Name: String):

boolean;

  1. Назначение: Проверка сущуствования ключа Name ветви корня RootKey и возврат рузультата.
  2. Входные параметры: RootKey, Name
  3. Выходные параметры: -
  4. Функция RegDelValue:
  5. Заголовок: function RegDelValue (RootKey: HKEY; Name: String):

boolean;

  1. Назначение: Удаление ключа Name ветви корня RootKey и возврат результата выполнения операции.
  2. Входные параметры: RootKey, Name
  3. Выходные параметры: -
  4. Функция RegAddKey:
  5. Заголовок: function RegAddKey (RootKey: HKEY; Name: String):

boolean;

  1. Назначение: Создание нового ключа Name ветви корня RootKey и возврат результата выполнения операции.
  2. Входные параметры: RootKey, Name
  3. Выходные параметры: -
  4. Функция RegDelKey:
  5. Заголовок: function RegDelKey (RootKey: HKEY; Name: String):

boolean;

  1. Назначение: Удаление улюча Name ветви корня RootKey и возврат результата выполнения операции.
  2. Входные параметры: RootKey, Name
  3. Выходные параметры: -
  4. Функция RegConnect:
  5. Заголовок: function RegConnect (MachineName: String;

RootKey: HKEY; var RemoteKey: HKEY): boolean;

  1. Назначение: Подключение к реестру машины с именем MachineName, и чтение с неё корня RootKey в RemoteKey, с возвратам флага успешного выполнения операции.
  2. Входные параметры: MachineName, RootKey
  3. Выходные параметры: RemoteKey
  4. Функция RegDisconnect:
  5. Заголовок: function RegDisconnect(RemoteKey: HKEY): boolean;
  6. Назначение: Отключение от удаленного корневого ключа (освобождение удаленного ключа RemoteKey), и возврат флага успешного выполнения операции.
  7. Входные параметры: RemoteKey
  8. Выходные параметры: -
  9. Функция RegEnumKeys:
  10. Заголовок: function RegEnumKeys (RootKey: HKEY; Name: String;

var KeyList: String): boolean;

  1. Назначение: Получение списка ключей ветви Name корня RootKey в KeyList, и возвращение true при отсутствии ошибок выполнения операции.
  2. Входные параметры: RootKey, Name
  3. Выходные параметры: KeyList
  4. Функция RegEnumValues:
  5. Заголовок: function RegEnumValues (RootKey: HKEY; Name: String;

var ValueList: String): boolean;

  1. Назначение: Получение списка значений ключей ветви Name корня RootKey в ValueList, и возвращение true при отсутствии ошибок выполнения операции.
  2. Входные параметры: RootKey, Name
  3. Выходные параметры: ValueList

 

2.3 Функции основного модуля (Unit1)

 

  1. Процедура Execute1:
  2. Заголовок: procedure Execute1;
  3. Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки Система.
  4. Входные параметры: -
  5. Выходные параметры: -
  6. Процедура Execute2:
  7. Заголовок: procedure Execute2;
  8. Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки Защита.
  9. Входные параметры: -
  10. Выходные параметры: -
  11. Процедура Execute3:
  12. Заголовок: procedure Execute3;
  13. Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки Рабочий стол.
  14. Входные параметры: -
  15. Выходные параметры: -

 

3. Программная реализация

 

3.1 Модуль работы с реестром (MiniReg)

 

unit MiniReg;

interface

uses Windows;

function RegSetString(RootKey: HKEY; Name: String;

Value: String): boolean;

function RegSetMultiString(RootKey: HKEY; Name: String;

Value: String): boolean;

function RegSetExpandString(RootKey: HKEY; Name: String;

Value: String): boolean;

function RegSetDWORD(RootKey: HKEY; Name: String;

Value: Cardinal): boolean;

function RegSetBinary(RootKey: HKEY; Name: String;

Value: Array of Byte): boolean;

function RegGetString(RootKey: HKEY; Name: String;

Var Value: String): boolean;

function RegGetMultiString(RootKey: HKEY; Name: String;

Var Value: String): boolean;

unction RegGetExpandString(RootKey: HKEY; Name: String;

Var Value: String): boolean;

function RegGetDWORD(RootKey: HKEY; Name: String;

Var Value: Cardinal): boolean;

function RegGetBinary(RootKey: HKEY; Name: String;

Var Value: String): boolean;

function RegGetValueType(RootKey: HKEY; Name: String;

var Value: Cardinal): boolean;

function RegValueExists(RootKey: HKEY; Name: String):

boolean;

function RegKeyExists(RootKey: HKEY; Name: String):

boolean;

function RegDelValue(RootKey: HKEY; Name: String): boolean;

function RegAddKey(RootKey: HKEY; Name: String): boolean;

function RegDelKey(RootKey: HKEY; Name: String): boolean;

function RegConnect(MachineName: String; RootKey: HKEY;

var RemoteKey: HKEY): boolean;

function RegDisconnect(RemoteKey: HKEY): boolean;

function RegEnumKeys(RootKey: HKEY; Name: String;

var KeyList: String): boolean;

function RegEnumValues(RootKey: HKEY; Name: String;

var ValueList: String): boolean;

implementation

function LastPos(Needle: Char; Haystack: String): integer;

begin

for Result := Length(Haystack) downto 1 do

if Haystack[Result] = Needle then

Break;

end;

function RegConnect(MachineName: String; RootKey: HKEY; var RemoteKey: HKEY): boolean;

begin

Result:= (RegConnectRegistry(PChar(MachineName), RootKey, RemoteKey)

= ERROR_SUCCESS);

end;

function RegDisconnect(RemoteKey: HKEY): boolean;

begin

Result := (RegCloseKey(RemoteKey) = ERROR_SUCCESS);

end;

function RegSetValue(RootKey: HKEY; Name: String; ValType: Cardinal;

PVal: Pointer; ValSize: Cardinal): boolean;

Var SubKey: String; n: integer; dispo: DWORD; hTemp: HKEY;

begin

Result := False;

n := LastPos(\, Name);

if n>0 then begin

SubKey := Copy(Name, 1, n - 1);

if RegCreateKeyEx(RootKey, PChar(SubKey), 0, nil, REG_OPTION_NON_VOLATILE, KEY_WRITE,

nil, hTemp, @dispo) = ERROR_SUCCESS then begin

SubKey := Copy(Name, n + 1, Length(Name) - n);

Result := (RegSetValueEx(hTemp, PChar(SubKey), 0, ValType, PVal, ValSize) = ERROR_SUCCESS);

RegCloseKey(hTemp);

end;

end;

end;

fun