Роман Клименко - Недокументированные и малоизвестные возможности Windows XP
- Название:Недокументированные и малоизвестные возможности Windows XP
- Автор:
- Жанр:
- Издательство:Питер
- Год:2006
- ISBN:5-469-01562-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роман Клименко - Недокументированные и малоизвестные возможности Windows XP краткое содержание
Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.
Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows. Тем более что довольно часто эти возможности позволяют обойти ограничения на те или иные функции Windows, установленные администратором. Издание также может быть интересно и обычным пользователям
Недокументированные и малоизвестные возможности Windows XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
'4 – определяетпеременную REG_DWORD-типа;
'7 – определяет переменную REG_MULTI_SZ-типа.
select case types(i)
'Проверяем тип параметра и в зависимости от этого типа используем
'разные методы для получения значения параметра. Все методы для
'получения значений параметров реестра также описаны в классе
'StdRegProv. Мы используем следующие методы.
'GetStringValue – получение значения строкового типа.
'GetExpandedStringValue – получение значения расширенного строкового типа.
'GetBinaryValue – получение значения параметра REG_BINARY-типа.
'GetDWordValue – получение значения параметра REG_DWORD-типа.
'GetMultiStringValue – получение значения параметра REG_MULTI_SZ-типа.
'Все эти методы используют для своей работы следующие переменные:
'идентификатор корневого раздела ветви реестра, остальной путь к ветви
'реестра, имя параметра (в нашем случае элемент массива names), а также
'название переменной, в которую будет считываться значение данного
'параметра.
case 1
obj.GetStringValue RootKey, path, names(i), value
'После считывания значения параметра проверяем, не произошла ли ошибка
'при считывании (как обычно, значение нуль в переменной). Если ошибки нет,
'то записываем параметр и его значение в текстовый файл. Аналогично
'выполняется работа и с другими типами параметров, поэтому их мы описывать
'не будем.
If isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) & " = REG_SZ: " & value
end if
case 2
obj.GetExpandedStringValue RootKey, path, names(i), value
if not isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) & " = REG_EXPAND_SZ: " & value
end if
case 3
obj.GetBinaryValue RootKey, path, names(i), value
for j = lbound(value) to ubound(value)
value(j) = hex(cint(value(j)))
next
if not isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) &" = REG_BINARY : "& _
join(value, ",")
end if
case 4
obj.GetDWordValue RootKey, path, names(i), value
if not isnull(names(i)) or value then
objTextFile.WriteLine names(i) & " = REG_DWORD : " & _
hex(value)
end if
case 7
obj.GetMultiStringValue RootKey, path, names(i), value
for j = lbound(value) to ubound(value)
value(j) = value(j)
next
if not isnull(names(i)) or not isnull(value) then
objTextFile.WriteLine names(i) &" = REG_MULTI_SZ : "& _
join(value, ",")
end if
end select
next
end if
End Sub
При написании сценария был использован не только метод EnumValues, но и другие методы класса StdRegProv. Это было необходимо для занесения в текстовый файл значений параметров, найденных в данной ветви реестра. Но это не все методы, описанные в классе StdRegProv. И поскольку большую часть книги все-таки составляют описания параметров реестра, хотя бы вкратце рассмотрим другие методы данного класса. Класс StdRegProv содержит следующие методы.
■ CreateKey — создает раздел в ветви реестра. Для его вызова необходимы следующие два параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), а также остальной путь к ветви реестра, которую нужно создать (в том числе и сам создаваемый раздел реестра).
ПРИМЕЧАНИЕ
Если идентификатор корневого раздела не указан, то будет использоваться стандартный идентификатор &H80000002, говорящий о том, что ветвь находится в корневом разделе HKEY_LOCAL_MACHINE.
■ DeleteKey — удаляет раздел в ветви реестра. Для его вызова также необходимы следующие два параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), а также остальной путь к ветви реестра, которую нужно удалить (в том числе и сам удаляемый раздел реестра).
■ EnumKey — в сценарии был рассмотрен метод для энумерации параметров указанной ветви реестра, этот же метод возвращает разделы, вложенные в указанную ветвь реестра. Для его работы необходимы следующие параметры: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, разделы которой нужно перечислить, а также переменная, используемая для хранения массива найденных в указанной ветви разделов (например, аналог переменной names нашего сценария).
■ DeleteValue — удаляет указанный параметр из ветви реестра. Для его работы необходимо указать следующие три параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, содержащей удаляемый параметр, а также название удаляемого параметра (если название не указано, то будет удалено значение параметра (По умолчанию) ).
■ SetDWORDValue — создает или изменяет указанный параметр DWORD-типа в ветви реестра. Для его работы необходимо указать следующие четыре параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, содержащей изменяемый параметр, название изменяемого параметра (или создаваемого), а также новое значение, которое необходимо присвоить указанному параметру. Если название изменяемого параметра указано не будет, то нужно изменить значение параметра (По умолчанию) данной ветви реестра.
■ CheckAccess — определяет, разрешен ли пользователю доступ к указанной ветви реестра. Если метод выполнился успешно, то он возвратит значение 0, иначе — любое другое значение. Для его работы необходимы следующие четыре параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, права на которую необходимо проверить, флаг для определения проверяемых прав, а также переменная, в которую будет помещен результат выполнения метода. Если значение этой переменной будет равно true, то пользователь обладает нужными правами на данную ветвь реестра, иначе возвращается значение false.
Флаг для определения проверяемых прав является битовой маской, значения которой определены в файле Winnt.h. Этот флаг может содержать следующие значения:
■ 0X0001 — KEY_QUERY_VALUE (разрешено запрашивать значения из дочерних разделов вашей ветви реестра);
■ 0X0002 — KEY_SET_VALUE (разрешено создание, удаление и установка значений параметров вашей ветви реестра);
■ 0X0004 — KEY_CREATE_SUB_KEY (разрешено создание и удаление дочерних разделов вашей ветви реестра);
■ 0X0008 — KEY_ENUMERATE_SUB_KEYS (разрешена энумерация дочерних разделов вашей ветви реестра);
■ 0X0010 — KEY_NOTIFY (разрешен вывод подтверждения на запрос изменения параметров или дочерних разделов вашей ветви реестра);
■ 0X0020 — KEY_CREATE_LINK (используется системой);
■ 0x00010000 — DELETE (разрешено удаление);
■ 0x00020000 — READ_CONTROL (разрешено управление чтением);
■ 0X00040000— WRITE_DAC (разрешен избирательный контроль над доступом к записи);
Читать дальшеИнтервал:
Закладка: