на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Настройка Windows по средствам системного реестра
иже приведена диаграмма использования потоками модуля Unit1 функций модуля MiniReg.

2.2 Функции модуля MiniReg

1.
Функция RegSetString:

a. Заголовок: function RegSetString(RootKey: HKEY; Name: String;

Value: String): boolean;

b. Назначение: Установка ключа Name ветви корня RootKey текстового значения Value и возврат true, в случае успеха.

c. Входные параметры: RootKey, Name, Value

d. Выходные параметры: -

2. Функция RegSetMultiString:

a. Заголовок: function RegSetMultiString (RootKey: HKEY; Name: String;

Value: String): boolean;

b. Назначение: Установка ключа Name ветви корня RootKey текстового значения Value из нескольких строк, и возврат true, в случае успеха.

c. Входные параметры: RootKey, Name, Value

d. Выходные параметры: -

3. Функция RegSetDWORD:

a. Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;

Value: Cardinal): boolean;

b. Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.

c. Входные параметры: RootKey, Name, Value

d. Выходные параметры: -

4. Функция RegSetBinary:

a. Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;

Value: Cardinal): boolean;

b. Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.

c. Входные параметры: RootKey, Name, Value

d. Выходные параметры: -

5. Функция RegSetBinary:

a. Заголовок: function RegSetBinary (RootKey: HKEY; Name: String;

Value: Array of Byte): boolean;

b. Назначение: Установка ключа Name ветви корня RootKey бинарного значения Value, и возврат true, в случае успеха.

c. Входные параметры: RootKey, Name, Value

d. Выходные параметры: -

6. Функция RegGetString:

a. Заголовок: function RegGetString (RootKey: HKEY; Name: String;

var Value: Cardinal): boolean;

b. Назначение: Получение ключа Name ветви корня RootKey текстового значения Value, и возврат true, в случае успешного получения данных.

c. Входные параметры: RootKey, Name

d. Выходные параметры: Value

7. Функция RegGetMultiString:

a. Заголовок: function RegGetMultiString (RootKey: HKEY; Name: String;

var Value: Cardinal): boolean;

b. Назначение: Получения ключа Name ветви корня RootKey много строкового значения Value, и возврат true, в случае успешного получения данных.

c. Входные параметры: RootKey, Name

d. Выходные параметры: Value

8. Функция RegGetDWORD:

a. Заголовок: function RegGetDWORD (RootKey: HKEY; Name: String;

var Value: Cardinal): boolean;

b. Назначение: Получение ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успешного получения данных.

c. Входные параметры: RootKey, Name

d. Выходные параметры: Value

9. Функция RegGetBinary:

a. Заголовок: function RegGetBinary (RootKey: HKEY; Name: String;

var Value: String): boolean;

b. Назначение: Получение ключа Name ветви корня RootKey бинарного значения Value в строковой форма, и возврат true, в случае успешного получения данных.

c. Входные параметры: RootKey, Name

d. Выходные параметры: Value

10. Функция RegGetValueType:

a. Заголовок: function RegGetValueType (RootKey: HKEY; Name: String; var Value: Cardinal): boolean;

b. Назначение: Получение типа ключа Name ветви корня RootKey в Value, и возврат true, в случае его существования.

c. Входные параметры: RootKey, Name

d. Выходные параметры: Value

11. Функция :

a. Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;

Value: Cardinal): boolean;

b. Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.

c. Входные параметры: RootKey, Name, Value

d. Выходные параметры: -

12. Функция RegKeyExists:

a. Заголовок: function RegKeyExists (RootKey: HKEY; Name: String):

boolean;

b. Назначение: Проверка сущуствования ключа Name ветви корня RootKey и возврат рузультата.

c. Входные параметры: RootKey, Name

d. Выходные параметры: -

13. Функция RegDelValue:

a. Заголовок: function RegDelValue (RootKey: HKEY; Name: String):

boolean;

b. Назначение: Удаление ключа Name ветви корня RootKey и возврат результата выполнения операции.

c. Входные параметры: RootKey, Name

d. Выходные параметры: -

14. Функция RegAddKey:

a. Заголовок: function RegAddKey (RootKey: HKEY; Name: String):

boolean;

b. Назначение: Создание нового ключа Name ветви корня RootKey и возврат результата выполнения операции.

c. Входные параметры: RootKey, Name

d. Выходные параметры: -

15. Функция RegDelKey:

a. Заголовок: function RegDelKey (RootKey: HKEY; Name: String):

boolean;

b. Назначение: Удаление улюча Name ветви корня RootKey и возврат результата выполнения операции.

c. Входные параметры: RootKey, Name

d. Выходные параметры: -

16. Функция RegConnect:

a. Заголовок: function RegConnect (MachineName: String;

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

b. Назначение: Подключение к реестру машины с именем MachineName, и чтение с неё корня RootKey в RemoteKey, с возвратам флага успешного выполнения операции.

c. Входные параметры: MachineName, RootKey

d. Выходные параметры: RemoteKey

17. Функция RegDisconnect:

a. Заголовок: function RegDisconnect(RemoteKey: HKEY): boolean;

b. Назначение: Отключение от удаленного корневого ключа (освобождение удаленного ключа RemoteKey), и возврат флага успешного выполнения операции.

c. Входные параметры: RemoteKey

d. Выходные параметры: -

18. Функция RegEnumKeys:

a. Заголовок: function RegEnumKeys (RootKey: HKEY; Name: String;

var KeyList: String): boolean;

b. Назначение: Получение списка ключей ветви Name корня RootKey в KeyList, и возвращение true при отсутствии ошибок выполнения операции.

c. Входные параметры: RootKey, Name

d. Выходные параметры: KeyList

19. Функция RegEnumValues:

a. Заголовок: function RegEnumValues (RootKey: HKEY; Name: String;

var ValueList: String): boolean;

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

c. Входные параметры: RootKey, Name

d. Выходные параметры: ValueList

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

1. Процедура Execute1:

a. Заголовок: procedure Execute1;

b. Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки `Система'.

c. Входные параметры: -

d. Выходные параметры: -

2. Процедура Execute2:

a. Заголовок: procedure Execute2;

b. Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки `Защита'.

c. Входные параметры: -

d. Выходные параметры: -

3. Процедура Execute3:

a. Заголовок: procedure Execute3;

b. Назначение: Функция получает\записывает параметры из реестра и заносит\считывает значений соответствующих флагов вкладки `Рабочий стол'.

c. Входные параметры: -

d. Выходные параметры: -

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;

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

var PVal: Pointer; var ValSize: Cardinal): boolean;

var

SubKey: String; n: integer; MyValType: DWORD;

hTemp: HKEY; Buf: Pointer; BufSize: Cardinal;

begin

Result := False;

n := LastPos('\', Name);

if n>0 then begin

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

if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_READ, hTemp) = ERROR_SUCCESS then begin

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

if RegQueryValueEx(hTemp, PChar(SubKey), nil, @MyValType, nil, @BufSize) = ERROR_SUCCESS then begin

GetMem(Buf, BufSize);

if RegQueryValueEx(hTemp, PChar(SubKey), nil, @MyValType, Buf, @BufSize) = ERROR_SUCCESS then begin

if ValType = MyValType then begin

PVal := Buf;

ValSize := BufSize;

Result := True;

end

else begin

FreeMem(Buf);

end;

end

else begin

FreeMem(Buf);

end;

end;

RegCloseKey(hTemp);

end;

end;

end;

function RegSetString(RootKey: HKEY; Name: String; Value: String): boolean;

begin

Result := RegSetValue(RootKey, Name, REG_SZ, PChar(Value + #0), Length(Value) + 1);

end;

function RegSetMultiString(RootKey: HKEY; Name: String; Value: String): boolean;

begin

Result := RegSetValue(RootKey, Name, REG_MULTI_SZ, PChar(Value + #0#0),Length(Value)+ 2);

end;

function RegSetExpandString(RootKey: HKEY; Name: String; Value: String): boolean;

begin

Result := RegSetValue(RootKey, Name, REG_EXPAND_SZ, PChar(Value + #0), Length(Value) + 1);

end;

function RegSetDword(RootKey: HKEY; Name: String; Value: Cardinal): boolean;

begin

Result := RegSetValue(RootKey, Name, REG_DWORD, @Value, SizeOf(Cardinal));

end;

function RegSetBinary(RootKey: HKEY; Name: String; Value: Array of Byte): boolean;

begin

Result := RegSetValue(RootKey, Name, REG_BINARY, @Value[Low(Value)], length(Value));

end;

function RegGetString(RootKey: HKEY; Name: String; Var Value: String): boolean;

var

Buf: Pointer; BufSize: Cardinal;

begin

Result := False;

if RegGetValue(RootKey, Name, REG_SZ, Buf, BufSize) then begin

Dec(BufSize);

SetLength(Value, BufSize);

f BufSize>0 then

CopyMemory(@Value[1], Buf, BufSize);

FreeMem(Buf);

Result := True;

end;

end;

function RegGetMultiString(RootKey: HKEY; Name: String; Var Value: String): boolean;

var

Buf: Pointer; BufSize: Cardinal;

begin

Result := False;

if RegGetValue(RootKey, Name, REG_MULTI_SZ, Buf, BufSize) then begin

Dec(BufSize);

SetLength(Value, BufSize);

if BufSize>0 then

CopyMemory(@Value[1], Buf, BufSize);

FreeMem(Buf);

Result := True;

end;

end;

function RegGetExpandString(RootKey: HKEY; Name: String; Var Value: String): boolean;

var

Buf: Pointer; BufSize: Cardinal;

begin

Result := False;

if RegGetValue(RootKey, Name, REG_EXPAND_SZ, Buf, BufSize) then begin

Dec(BufSize);

SetLength(Value, BufSize);

if BufSize>0 then

CopyMemory(@Value[1], Buf, BufSize);

FreeMem(Buf);

Result := True;

end;

end;

function RegGetDWORD(RootKey: HKEY; Name: String; Var Value: Cardinal): boolean;

var

Buf: Pointer; BufSize: Cardinal;

begin

Result := False;

if RegGetValue(RootKey, Name, REG_DWORD, Buf, BufSize) then begin

CopyMemory(@Value, Buf, BufSize);

FreeMem(Buf);

Result := True;

end;

end;

function RegGetBinary(RootKey: HKEY; Name: String; Var Value: String): boolean;

var

Buf: Pointer; BufSize: Cardinal;

begin

Result := False;

if RegGetValue(RootKey, Name, REG_BINARY, Buf, BufSize) then begin

Страницы: 1, 2, 3, 4, 5



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.