Настройка Windows по средствам системного реестра
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
lue: String): boolean;
- Назначение: Получение ключа Name ветви корня RootKey бинарного значения Value в строковой форма, и возврат true, в случае успешного получения данных.
- Входные параметры: RootKey, Name
- Выходные параметры: Value
- Функция RegGetValueType:
- Заголовок: function RegGetValueType (RootKey: HKEY; Name: String; var Value: Cardinal): boolean;
- Назначение: Получение типа ключа Name ветви корня RootKey в Value, и возврат true, в случае его существования.
- Входные параметры: RootKey, Name
- Выходные параметры: Value
- Функция :
- Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;
Value: Cardinal): boolean;
- Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.
- Входные параметры: RootKey, Name, Value
- Выходные параметры: -
- Функция RegKeyExists:
- Заголовок: function RegKeyExists (RootKey: HKEY; Name: String):
boolean;
- Назначение: Проверка сущуствования ключа Name ветви корня RootKey и возврат рузультата.
- Входные параметры: RootKey, Name
- Выходные параметры: -
- Функция RegDelValue:
- Заголовок: function RegDelValue (RootKey: HKEY; Name: String):
boolean;
- Назначение: Удаление ключа Name ветви корня RootKey и возврат результата выполнения операции.
- Входные параметры: RootKey, Name
- Выходные параметры: -
- Функция RegAddKey:
- Заголовок: function RegAddKey (RootKey: HKEY; Name: String):
boolean;
- Назначение: Создание нового ключа Name ветви корня RootKey и возврат результата выполнения операции.
- Входные параметры: RootKey, Name
- Выходные параметры: -
- Функция RegDelKey:
- Заголовок: function RegDelKey (RootKey: HKEY; Name: String):
boolean;
- Назначение: Удаление улюча Name ветви корня RootKey и возврат результата выполнения операции.
- Входные параметры: RootKey, Name
- Выходные параметры: -
- Функция RegConnect:
- Заголовок: function RegConnect (MachineName: String;
RootKey: HKEY; var RemoteKey: HKEY): boolean;
- Назначение: Подключение к реестру машины с именем MachineName, и чтение с неё корня RootKey в RemoteKey, с возвратам флага успешного выполнения операции.
- Входные параметры: MachineName, RootKey
- Выходные параметры: RemoteKey
- Функция RegDisconnect:
- Заголовок: function RegDisconnect(RemoteKey: HKEY): boolean;
- Назначение: Отключение от удаленного корневого ключа (освобождение удаленного ключа RemoteKey), и возврат флага успешного выполнения операции.
- Входные параметры: RemoteKey
- Выходные параметры: -
- Функция RegEnumKeys:
- Заголовок: function RegEnumKeys (RootKey: HKEY; Name: String;
var KeyList: String): boolean;
- Назначение: Получение списка ключей ветви Name корня RootKey в KeyList, и возвращение true при отсутствии ошибок выполнения операции.
- Входные параметры: RootKey, Name
- Выходные параметры: KeyList
- Функция RegEnumValues:
- Заголовок: function RegEnumValues (RootKey: HKEY; Name: String;
var ValueList: String): boolean;
- Назначение: Получение списка значений ключей ветви Name корня RootKey в ValueList, и возвращение true при отсутствии ошибок выполнения операции.
- Входные параметры: RootKey, Name
- Выходные параметры: ValueList
2.3 Функции основного модуля (Unit1)
- Процедура Execute1:
- Заголовок: procedure Execute1;
- Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки Система.
- Входные параметры: -
- Выходные параметры: -
- Процедура Execute2:
- Заголовок: procedure Execute2;
- Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки Защита.
- Входные параметры: -
- Выходные параметры: -
- Процедура Execute3:
- Заголовок: procedure Execute3;
- Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки Рабочий стол.
- Входные параметры: -
- Выходные параметры: -
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