На этом шаге мы рассмотрим методы работы с реестром.
Читать, создавать и удалять записи в реестре можно с помощью специальных методов объекта Wscript.Shell, входящего в состав WSH:
Применение этих методов имеет следующий синтаксис:
var Myshell = new ActiveXObject("WScript.Shell"); Myshell.метод(<параметры>);
Метод RegWrite() принимает в качестве параметра строку, содержащую имя раздела реестра, за которым указывается имя параметра. Все элементы имени раздела разделяются двойными обратными слэшами. Например, в строке "HKEY_CURENT_USER\\Myreg\\myparam" последний элемент myparam является именем параметра, а не раздела реестра.
Метод RegWrite() принимает три параметра, из которых последний не является обязательным. Первый параметр - строка, содержащая имя раздела или имя параметра. Если эта строка заканчивается двойным слэшем, то подразумевается, что последний элемент строки - имя раздела, в противном случае - имя параметра в разделе. Второй параметр метода RegWrite() представляет значение параметра раздела. Если имя параметра раздела не указано, то подразумевается параметр по умолчанию. Третий, необязательный параметр задает тип параметра в разделе реестра и представляет собой "REG_DWORD" или "REG_BINARY", соответственно для типов DWORD и двоичного. Если тип не указан, то подразумевается строковый тип.
var Myshell = new ActiveXObject("WScript.Shell"); // Создание подраздела Myreg в разделе HKEY_CURENT_USER и // присвоение параметру по умолчанию значения "значение": Myshell.RegWrite("HKCU\\Myreg\\", "значение"); // Создание в разделе HKEY_CURENT_USER\Myreg строкового // параметра myparam и присвоение ему значения "некоторая строка": Myshell.RegWrite("HKCU \\Myreg\\myparaml", "некоторая строка"); // Создание в разделе HKCU\Myreg двоичного параметра // myparam2 и присвоение ему значения 5: Myshell.RegWrite("HKCU\\Myreg\\myparam2", 5, "REG_BINARY"); // Создание в разделе HKCU\Myreg параметра myparam3 // типа DWORD и присвоение ему значения 3: Myshell.RegWrite("HKCU\\Myreg\\myparam3", 3, "REG_DWORD");
Метод RegDelete() принимает в качестве параметра строку, содержащую имя раздела или параметра. Если эта строка заканчивается двойным слэшем, то подразумевается, что последний элемент строки - имя раздела, в противном случае имя параметра в разделе.
var Myshell = new ActiveXObject("WScript.Shell"); // Удаление в разделе HKEY_CURENT_USER\Myreg параметра myparam1: Myshell.RegWrite("HKCU\\Myreg\\myparam1"); // Удаление подраздела Myreg в разделе HKEY_CURENT_USER: Myshell.RegDelete("HKCU\\Myreg\\");
Вместо полных имен корневых разделов реестра можно использовать их сокращенные обозначения. Например, вместо HKEY_CURENT_USER можно писать HKCU.
Ниже приведен пример программы, делающей запись в реестре, которая устанавливает стартовую веб-страницу.
<HTML> <HEAD> <TITLE>Установска стартовой страницы</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function StPage(myStartPage) { var Myshell = new ActiveXObject("WScript.Shell"); // Проверяем, какая веб-страница является начальной: startPage = Myshell.RegRead("HKCU\\SOFTWARE\\Microsoft\\ Internet Explorer\\Main\\Start Page"); if (startPage != myStartPage) // если другая Myshell.RegWrite("HKCU\\SOFTWARE\\Microsoft\\ Internet Explorer\\Main\\Start Page", myStartPage); } //--> </SCRIPT> </HEAD> <BODY> <H2>Установска стартовой страницы</H2> <FORM NAME="frm1"> Стартовая страница:<BR> <INPUT TYPE="TEXT" SIZE="40" VALUE="http://it.kgsu.ru" NAME="pole"><BR> <INPUT TYPE="BUTTON" ONCLICK="StPage(frm1.pole.value)" VALUE="Установить"> </FORM> </BODY> </HTML>
Результат выполнения этого документа приведен на рисунках 1 и 2.
Рис.1. Внешний вид документа в браузере
Рис.2. Результат выполнения скрипта
Аналогичным образом можно создать записи в реестре, запускающие приложения.