С помощью методов объекта WshShell из сценариев WSH можно:

? создавать новые разделы и параметры (метод RegWrite);

? изменять значения параметров и разделов (метод RegWrite);

? считывать значения параметров и разделов (метод RegRead);

? удалять параметры и разделы (метод RegDelete).

Замечание

В Windows ХР для работы с системным реестром сценарий должен иметь разрешение на доступ к разделам реестра, которым обладает администратор.

В листинге 2.44 представлен сценарий Registry.js, который производит манипуляции внутри корневого раздела HKEY_CURRENT_USER, причем каждая операция выполняется только после утвердительного ответа на соответствующий запрос, формируемый в диалоговом окне.

Сначала в разделе HKEY_CURRENT_USER создается подраздел ExampleKey, в который затем записывается строковый параметр ExampleValue со значением 'Value from WSH' (рис. 2.21).

Рис. 2.21. Элементы системного реестра, создаваемые сценарием Registry.js

После этого параметр ExampleValue и раздел ExampleKey последовательно удаляются из реестра.

Листинг 2.44. Работа с системным реестром (JScript)

/********************************************************************/

/* Имя: Registry.js                                                 */

/* Язык: JScript                                                    */

/* Описание: Работа с системным реестром                            */

/********************************************************************/

//Объявляем переменные

var WshShell,Root,Key,Res,SValue,ValueName,SRegValue;

//Инициализируем константы для диалоговых окон

var vbYesNo=4,vbQuestion=32,vbInformation=64,vbYes=6,vbOkOnly=0;

Root='HKEY_CURRENT_USER';  //Корневой ключ

Key='\ExampleKey\';      //Новый ключ

ValueName='ExampleValue';  //Имя нового параметра

SValue='Value from WSH';   //Значение нового параметра

//Создаем объект WshShell

WshShell=WScript.CreateObject('WScript.Shell');

//Запрос на создание нового ключа

Res=WshShell.Popup('Создать ключ '+Root+Key+'?',0,

 'Работа с реестром',vbQuestion+vbYesNo);

if (Res==vbYes) { //Нажата кнопка Да

 //Записываем новый ключ

 WshShell.RegWrite(Root+Key,'');

 WshShell.Popup('Ключ '+Root+Key+' создан!',0,

  'Работа с реестром',vbInformation+vbOkOnly);

}

//Запрос на запись нового параметра

Res=WshShell.Popup('Записать параметр '+Root+Key+ValueName+'?',0,

 'Работа с реестром',vbQuestion+vbYesNo);

if (Res==vbYes) { //Нажата кнопка Да

 //Записываем новый строковый параметр

 WshShell.RegWrite(Root+Key+ValueName,SValue,'REG_SZ');

 WshShell.Popup('Параметр '+Root+Key+ValueName+' записан!',0,

  'Работа с реестром',vbInformation+vbOkOnly);

 //Считываем значение созданного параметра

 SRegValue=WshShell.RegRead(Root+Key+ValueName);

 //Выводим на экран полученное значение

 WshShell.Popup(Root+Key+ValueName+'='+SRegValue,0,

  'Работа с реестром',vbInformation+vbOkOnly);

}

//Запрос на удаление параметра

Res=WshShell.Popup('Удалить параметр '+Root+Key+ValueName+'?',0,

 'Работа с реестром',vbQuestion+vbYesNo);

if (Res==vbYes) { //Нажата кнопка Да

 //Удаляем параметр

 WshShell.RegDelete(Root+Key+ValueName);

 WshShell.Popup('Параметр '+Root+Key+ValueName+' удален!',0,

  'Работа с реестром',vbInformation+vbOkOnly);

}

//Запрос на удаление раздела

Res=WshShell.Popup('Удалить раздел '+Root+Key+'?',0,

 'Работа с реестром',vbQuestion+vbYesNo);

if (Res==vbYes) {  //Нажата кнопка Да

 //Удаляем раздел

 WshShell.RegDelete(Root+Key);

 WshShell.Popup('Раздел '+Root+Key+' удален!',0,

  'Работа с реестром',vbInformation+vbOkOnly);

}

/*************  Конец *********************************************/

Реализация того же сценария на языке VBScript приведена в листинге 2.45.

Листинr 2.45. Работа с системным реестром (VBScript)

'********************************************************************

' Имя: Registry.vbs

' Язык: VBScript

' Описание: Работа с системным реестром

'********************************************************************

Option Explicit

'Объявляем переменные

Dim WshShell,Root,Key,Res,SValue,ValueName,SRegValue

Root='HKEY_CURRENT_USER'   'Корневой ключ

Key='ExampleKey'         'Новый ключ

ValueName='ExampleValue'   'Имя нового параметра

SValue='Value from WSH'    'Значение нового параметра

'Создаем объект WshShell

Set WshShell=WScript.CreateObject('WScript.Shell')

'Запрос на создание нового ключа

Res=WshShell.Popup('Создать ключ' & vbCrLf & Root & Key & '?',0,_

 'Работа с реестром',vbQuestion+vbYesNo)

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату