ОС (Lite) - 3 Семестр / Лекции / Сервер сценариев Windows
.doc
Сервер сценариев Windows (WSH)
Сервер сценариев Windows (Windows Scripting Host, WSH) не зависит от языка сценария и устанавливается в системах Windows 98, Windows 2000 и Windows XP как стандартное средство. Компания Microsoft разработала и поддерживает ядро сценариев как для Visual Basic, так и для JavaScript.
Назначение сервера сценариев
Сервер сценариев позволяет применять в операционных системах Windows простые мощные и гибкие сценарии.
Объектная модель Windows Script Host
Как и все в современных операционных системах Microsoft, WSH является объектно-ориентированным средством. Объектная модель Windows Script Host состоит из 14 объектов. Корневым объектом является WScript.
Для доступа к реестру наибольший интерес вызывает объект WshShell, который будет обсуждаться в следующем разделе.
Объект WshShell
Обеспечивает доступ к собственной оболочке Windows. Объект WshShell является дочерним объектом объекта WScript и для того, чтобы создать объект WshShell необходимо использовать метод CreateScript объекта
WScript (т.е. WScript.CreateObject("WScript.Shell")).
Метод RegRead
Метод RegRead возвращает значение ключа или имя значимого элемента реестра.
В методе RegRead необходимо придерживаться принятых аббревиатур корневого ключа. В табл.1 представлены пять допустимых корневых ключей.
Табл.1 Аббервиатуры имен корневых ключей реестра
Аббревиатура
Имя корневого ключа
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_CLASSES_ROOT HKCR
HKEY_USERS HKEY_USERS
HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG
Метод RegWrite
-
Метод RegWrite создает новый ключ, добавляет еще один параметр в существующий ключ и присваивает ему значение или изменяет имя существующего значимого элемента.
Метод RegDelete
-
Метод RegDelete используется для удаления ключа реестра или одного из его значимых элементов из реестра.
JScript-сценарий для изменения системного реестра
Этот программный код создает ключ реестра HKEY_CURRENT_USER\Software\MyCoolSoftware,
устанавливает значение его элемента (по умолчанию) ((Default)) (типа данных REG_BINARY) равным 1, затем под этим ключом создает еще один элемент со значением типа REG_SZ и присваивает ему строковое значение "Это всего лишь тест!".
Пример
// Установка переменных
var vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;
var result;
// Создание объекта WshShell
var WshShell = WScript.CreateObject("WScript.Shell");
{
// Выдача приглашающего сообщения пользователю
result = WshShell.Popup("Создать новый параметр реестра?",
0,
"Доступ к реестру с использованием JScript",
vbOKCancel + vbInformation);
if (result != vbCancel)
{
WshShell.RegWrite ("HKCU\\Software\\MyCoolSoftware\\", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU\\Software\\MyCoolSoftware\\MySuperProgram";
"Это всего лишь тест!", "REG_SZ");
var bКеу = WshShell.RegRead ("HKCU\\Software\\MyCoo lSoftWare\\");
WScript.Echo (WshShell.RegRead ("HKCU\\ Software\\MyCoolSoftware\\MySuperProgram"));
}
// Приглашение пользователю
result = WshShell.Popup("Удалить только что созданный параметр?",
0,
"Доступ к реестру с использованием JScript",
vbOKCancel + vbInformation);
if (result != vbCancel)
{
WshShell.RegDelete
("HKCU\\Software\\MyCoolSoftware\\MySuperProgram");
WshShell.RegDelete ("HKCU\\Software\\MyCoolSoftware\\");
}
}
Для проверки функционирования этого сценария введите в текстовом редакторе (например, в Блокноте) программный код, приведенный и данном листинге, и сохраните полученный файл с расширением .js. Если вы дважды щелкните мышью по этому файлу, запустится сервер WSH и выполнит данный сценарий.