|
Настройка Windows по средствам системного реестра |
иже приведена диаграмма использования потоками модуля Unit1 функций модуля MiniReg.2.2 Функции модуля MiniReg1. Функция RegSetString:a. Заголовок: function RegSetString(RootKey: HKEY; Name: String;Value: String): boolean;b. Назначение: Установка ключа Name ветви корня RootKey текстового значения Value и возврат true, в случае успеха.c. Входные параметры: RootKey, Name, Valued. Выходные параметры: -2. Функция RegSetMultiString:a. Заголовок: function RegSetMultiString (RootKey: HKEY; Name: String;Value: String): boolean;b. Назначение: Установка ключа Name ветви корня RootKey текстового значения Value из нескольких строк, и возврат true, в случае успеха.c. Входные параметры: RootKey, Name, Valued. Выходные параметры: -3. Функция RegSetDWORD:a. Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;Value: Cardinal): boolean;b. Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.c. Входные параметры: RootKey, Name, Valued. Выходные параметры: -4. Функция RegSetBinary:a. Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;Value: Cardinal): boolean;b. Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.c. Входные параметры: RootKey, Name, Valued. Выходные параметры: -5. Функция RegSetBinary:a. Заголовок: function RegSetBinary (RootKey: HKEY; Name: String;Value: Array of Byte): boolean;b. Назначение: Установка ключа Name ветви корня RootKey бинарного значения Value, и возврат true, в случае успеха.c. Входные параметры: RootKey, Name, Valued. Выходные параметры: -6. Функция RegGetString:a. Заголовок: function RegGetString (RootKey: HKEY; Name: String;var Value: Cardinal): boolean;b. Назначение: Получение ключа Name ветви корня RootKey текстового значения Value, и возврат true, в случае успешного получения данных.c. Входные параметры: RootKey, Named. Выходные параметры: Value7. Функция RegGetMultiString:a. Заголовок: function RegGetMultiString (RootKey: HKEY; Name: String;var Value: Cardinal): boolean;b. Назначение: Получения ключа Name ветви корня RootKey много строкового значения Value, и возврат true, в случае успешного получения данных.c. Входные параметры: RootKey, Named. Выходные параметры: Value8. Функция RegGetDWORD:a. Заголовок: function RegGetDWORD (RootKey: HKEY; Name: String;var Value: Cardinal): boolean;b. Назначение: Получение ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успешного получения данных.c. Входные параметры: RootKey, Named. Выходные параметры: Value9. Функция RegGetBinary:a. Заголовок: function RegGetBinary (RootKey: HKEY; Name: String;var Value: String): boolean;b. Назначение: Получение ключа Name ветви корня RootKey бинарного значения Value в строковой форма, и возврат true, в случае успешного получения данных.c. Входные параметры: RootKey, Named. Выходные параметры: Value10. Функция RegGetValueType:a. Заголовок: function RegGetValueType (RootKey: HKEY; Name: String; var Value: Cardinal): boolean;b. Назначение: Получение типа ключа Name ветви корня RootKey в Value, и возврат true, в случае его существования.c. Входные параметры: RootKey, Named. Выходные параметры: Value11. Функция :a. Заголовок: function RegSetDWORD(RootKey: HKEY; Name: String;Value: Cardinal): boolean;b. Назначение: Установка ключа Name ветви корня RootKey целочисленного значения Value, и возврат true, в случае успеха.c. Входные параметры: RootKey, Name, Valued. Выходные параметры: -12. Функция RegKeyExists:a. Заголовок: function RegKeyExists (RootKey: HKEY; Name: String):boolean;b. Назначение: Проверка сущуствования ключа Name ветви корня RootKey и возврат рузультата.c. Входные параметры: RootKey, Named. Выходные параметры: -13. Функция RegDelValue:a. Заголовок: function RegDelValue (RootKey: HKEY; Name: String):boolean;b. Назначение: Удаление ключа Name ветви корня RootKey и возврат результата выполнения операции.c. Входные параметры: RootKey, Named. Выходные параметры: -14. Функция RegAddKey:a. Заголовок: function RegAddKey (RootKey: HKEY; Name: String):boolean;b. Назначение: Создание нового ключа Name ветви корня RootKey и возврат результата выполнения операции.c. Входные параметры: RootKey, Named. Выходные параметры: -15. Функция RegDelKey:a. Заголовок: function RegDelKey (RootKey: HKEY; Name: String):boolean;b. Назначение: Удаление улюча Name ветви корня RootKey и возврат результата выполнения операции.c. Входные параметры: RootKey, Named. Выходные параметры: -16. Функция RegConnect:a. Заголовок: function RegConnect (MachineName: String;RootKey: HKEY; var RemoteKey: HKEY): boolean;b. Назначение: Подключение к реестру машины с именем MachineName, и чтение с неё корня RootKey в RemoteKey, с возвратам флага успешного выполнения операции.c. Входные параметры: MachineName, RootKeyd. Выходные параметры: RemoteKey17. Функция RegDisconnect:a. Заголовок: function RegDisconnect(RemoteKey: HKEY): boolean;b. Назначение: Отключение от удаленного корневого ключа (освобождение удаленного ключа RemoteKey), и возврат флага успешного выполнения операции.c. Входные параметры: RemoteKeyd. Выходные параметры: -18. Функция RegEnumKeys:a. Заголовок: function RegEnumKeys (RootKey: HKEY; Name: String;var KeyList: String): boolean;b. Назначение: Получение списка ключей ветви Name корня RootKey в KeyList, и возвращение true при отсутствии ошибок выполнения операции.c. Входные параметры: RootKey, Named. Выходные параметры: KeyList19. Функция RegEnumValues:a. Заголовок: function RegEnumValues (RootKey: HKEY; Name: String;var ValueList: String): boolean;b. Назначение: Получение списка значений ключей ветви Name корня RootKey в ValueList, и возвращение true при отсутствии ошибок выполнения операции.c. Входные параметры: RootKey, Named. Выходные параметры: ValueList2.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;interfaceuses 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;implementationfunction LastPos(Needle: Char; Haystack: String): integer;beginfor Result := Length(Haystack) downto 1 doif Haystack[Result] = Needle thenBreak;end;function RegConnect(MachineName: String; RootKey: HKEY; var RemoteKey: HKEY): boolean;beginResult:= (RegConnectRegistry(PChar(MachineName), RootKey, RemoteKey) = ERROR_SUCCESS);end;function RegDisconnect(RemoteKey: HKEY): boolean;beginResult := (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;beginResult := False;n := LastPos('\', Name);if n>0 then beginSubKey := Copy(Name, 1, n - 1);if RegCreateKeyEx(RootKey, PChar(SubKey), 0, nil, REG_OPTION_NON_VOLATILE, KEY_WRITE,nil, hTemp, @dispo) = ERROR_SUCCESS then beginSubKey := 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;varSubKey: String; n: integer; MyValType: DWORD;hTemp: HKEY; Buf: Pointer; BufSize: Cardinal;beginResult := False;n := LastPos('\', Name);if n>0 then beginSubKey := Copy(Name, 1, n - 1);if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_READ, hTemp) = ERROR_SUCCESS then beginSubKey := Copy(Name, n + 1, Length(Name) - n);if RegQueryValueEx(hTemp, PChar(SubKey), nil, @MyValType, nil, @BufSize) = ERROR_SUCCESS then beginGetMem(Buf, BufSize);if RegQueryValueEx(hTemp, PChar(SubKey), nil, @MyValType, Buf, @BufSize) = ERROR_SUCCESS then beginif ValType = MyValType then beginPVal := Buf;ValSize := BufSize;Result := True;endelse beginFreeMem(Buf);end;endelse beginFreeMem(Buf);end;end;RegCloseKey(hTemp);end;end;end;function RegSetString(RootKey: HKEY; Name: String; Value: String): boolean;beginResult := RegSetValue(RootKey, Name, REG_SZ, PChar(Value + #0), Length(Value) + 1);end;function RegSetMultiString(RootKey: HKEY; Name: String; Value: String): boolean;beginResult := RegSetValue(RootKey, Name, REG_MULTI_SZ, PChar(Value + #0#0),Length(Value)+ 2);end;function RegSetExpandString(RootKey: HKEY; Name: String; Value: String): boolean;beginResult := RegSetValue(RootKey, Name, REG_EXPAND_SZ, PChar(Value + #0), Length(Value) + 1);end;function RegSetDword(RootKey: HKEY; Name: String; Value: Cardinal): boolean;beginResult := RegSetValue(RootKey, Name, REG_DWORD, @Value, SizeOf(Cardinal));end;function RegSetBinary(RootKey: HKEY; Name: String; Value: Array of Byte): boolean;beginResult := RegSetValue(RootKey, Name, REG_BINARY, @Value[Low(Value)], length(Value));end;function RegGetString(RootKey: HKEY; Name: String; Var Value: String): boolean;varBuf: Pointer; BufSize: Cardinal;beginResult := False;if RegGetValue(RootKey, Name, REG_SZ, Buf, BufSize) then beginDec(BufSize);SetLength(Value, BufSize);f BufSize>0 thenCopyMemory(@Value[1], Buf, BufSize);FreeMem(Buf);Result := True;end;end;function RegGetMultiString(RootKey: HKEY; Name: String; Var Value: String): boolean;varBuf: Pointer; BufSize: Cardinal;beginResult := False;if RegGetValue(RootKey, Name, REG_MULTI_SZ, Buf, BufSize) then beginDec(BufSize);SetLength(Value, BufSize);if BufSize>0 thenCopyMemory(@Value[1], Buf, BufSize);FreeMem(Buf);Result := True;end;end;function RegGetExpandString(RootKey: HKEY; Name: String; Var Value: String): boolean;varBuf: Pointer; BufSize: Cardinal;beginResult := False;if RegGetValue(RootKey, Name, REG_EXPAND_SZ, Buf, BufSize) then beginDec(BufSize);SetLength(Value, BufSize);if BufSize>0 thenCopyMemory(@Value[1], Buf, BufSize);FreeMem(Buf);Result := True;end;end;function RegGetDWORD(RootKey: HKEY; Name: String; Var Value: Cardinal): boolean;varBuf: Pointer; BufSize: Cardinal;beginResult := False;if RegGetValue(RootKey, Name, REG_DWORD, Buf, BufSize) then beginCopyMemory(@Value, Buf, BufSize);FreeMem(Buf);Result := True;end;end;function RegGetBinary(RootKey: HKEY; Name: String; Var Value: String): boolean;varBuf: Pointer; BufSize: Cardinal;beginResult := False;if RegGetValue(RootKey, Name, REG_BINARY, Buf, BufSize) then begin
Страницы: 1, 2, 3, 4, 5
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|