Шаг 70.
Основы JavaScript.
Методы работы с реестром

    На этом шаге мы рассмотрим методы работы с реестром.

    Читать, создавать и удалять записи в реестре можно с помощью специальных методов объекта Wscript.Shell, входящего в состав WSH:

  1. RegRead() - возвращает запись реестра или значение параметра;
  2. RegWrite() - создает новую запись в реестре или изменяет значение параметра уже существующей записи;
  3. RegDelete() - удаляет запись реестра или параметр.

    Применение этих методов имеет следующий синтаксис:

    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. Результат выполнения скрипта

    Аналогичным образом можно создать записи в реестре, запускающие приложения.




Предыдущий шаг Содержание