Книга: Недокументированные и малоизвестные возможности Windows XP

Удаление ветвей реестра

Удаление ветвей реестра

Параметр или ветвь реестра можно не только добавить в реестр, но и удалить из него. Для этого применяется ключевое слово DelReg, указывающее на блок INF-файла, содержащий сведения о ветвях реестра и параметрах, которые нужно удалить. Несмотря на то, что флаг для редактирования параметров позволяет также и удалять параметры, для их удаления рекомендуется все-таки использовать ключевое слово, так как это более наглядно и позволяет легче понять принцип работы INF-файла.

Рассмотрим пример удаления параметра. В этом примере из реестра удаляется ветвь HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverShares, чтобы отключить все пользовательские общедоступные папки. При этом сначала нужно удалить все расположенные в данной ветви разделы, чтобы можно было удалить саму ветвь реестра. Как правило, ветвь для хранения сведений об общедоступных папках содержит только один раздел — Security.

ПРИМЕЧАНИЕ

Вообще-то можно удалять и ветви реестра, хранящие другие разделы, но лучше перестраховаться. На памяти у автора были случаи, когда ветвь реестра не удалялась из-за того, что в ней содержались вложенные разделы.

Листинг 15.3. Удаление сведений об общедоступных папках

[version]
Signature="$CHICAGO$"
[DefaultInstall]
DelReg=shared_del
[shared_del]
HKLM,"SYSTEMCURRENTCONTROLSETSERVICESLANMANSERVERSHARESSecurity"
HKLM,"SYSTEMCURRENTCONTROLSETSERVICESLANMANSERVERSHARES"

Как можно заметить, содержимое блока для удаления ветвей и параметров реестра похоже на содержимое блока редактирования ветвей и параметров реестра. Строка для удаления ветви или параметра имеет следующий формат:

«корневой раздел», «ветвь реестра», «параметр», «флаг операции удаления», «пример для удаления» 

? Корневой раздел — указывает на корневой раздел, в котором расположен удаляемый параметр или ветвь реестра.

? Ветвь реестра — определяет удаляемую ветвь реестра или ветвь, в которой хранится удаляемый параметр.

? Параметр — определяет название удаляемого параметра. Если параметр отсутствует, то предполагается, что удаляться будет конечный раздел указанной ветви реестра.

? Флаг операции удаления — может принимать следующие значения:

 • 0x00002000 — удалить весь конечный раздел указанной ветви;

 • 0x00004000 — произвести указанные изменения в 32-разрядном реестре;

 • 0x00018002 — удаляет из параметра все строки, соответствующие примеру для удаления.

? Пример для удаления — определяет строку значения параметра, имеющего REG_MULTI_SZ-тип, все соответствия которой должны быть удалены из параметра.

Оглавление книги


Генерация: 2.512. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз