Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на JavaScript

  Все выпуски  

Азы и секреты программирования на JavaScript.


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
Азы и секреты программирования на JavaScript Выпуск 4.

Свойства и методы Сервера Сценариев Windows как объекта.

     В операционной системе сама программа Сервера Сценариев, как объект, имеет следующие значения унифицированного идентификатора (хотя Вряд-ли Вам это пригодится, все-же для полноты картины я привожу этот код):
CLSID: 60254CA2-953b-11CF-8C96-00AA00B8708C
IID: 60254CA1-953b-11CF-8C96-00AA00B8708C.
Этот объект, как и любой другой, имеет свой собственный набор свойств и методов

Свойства Сервера Сценариев

     Все имеющиеся заявленные свойства Сервера Сценариев перечислены в таблице:

Таблица A: свойства Сервера Сценариев
Свойство Описание
Application IDispatch - интерфейс сервера сценариев
Arguments коллекция параметров объекта
FullName полный путь к исполняемому файлу
Name имя приложения по-умолчанию
Path каталог, в котором расположен Wscript.exe или Cscript.exe
ScriptFullName полный путь к файлу сценария
ScriptName имя файла сценария, который выполняется
Version версия Сервера Сценариев

     Разберем на примерах, как все это можно использовать.

Пример 1. Получение аргументов, переданных в командной строке:

var objArgs = WScript.Arguments;
var i;
for(i=0; i < objArgs.Count(); i++)
{
  WScript.Echo(objArgs(i));
  }

     Обратите внимание, что язык JavaScript, как и его родитель Java, чувствителен к регистрам букв. Это значит, что если объект сервера сценариев пишется как WScript, то набрав это слово, к примеру как Wscript, Вы получите ошибку исполнения сценария. Поэтому будьте очень внимательны.

Пример 2. Использование свойств Сервера Сценариев:

// Пример работы со свойствами Сервера Сценариев Windows
//
// Вывод на зкран названия и версии сервера сценариев, установленного в системе
WScript.Echo(WScript.Name + ", версия " +WScript.Version);
 // Вывод на зкран полного пути к исполняемому файлу Сервера Сценариев
WScript.Echo(WScript.FullName);
 // Вывод на зкран каталога, в котором расположен исполняемый файл Сервера Сценариев
WScript.Echo(WScript.Path);
// Вывод на зкран полного пути к выполняемому в настоящий момент файлу сценария
WScript.Echo(WScript.ScriptFullName);
// Вывод на зкран имени выполняемого в настоящий момент файла сценария
WScript.Echo(WScript.ScriptName);

Методы Сервера Сценариев

     Теперь рассмотрим методы. Всего их существует пять:

Таблица B: Методы Сервера Сценариев
Метод Описание
CreateObject создает объект и устанавливает обработчик его методов
DisconnectObject отключает созданный ранее объект
Echo отображает параметры в окне или в командной строке
GetObject получение параметров объекта из файла
Quit завершает выполнение с возвратом указанного кода

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

     Метод CreateObject: WScript.CreateObject(strProgID, [strPrefix]).
Этот метод создает объект, установленный параметром strProgID. Если параметр strPrefix определен, то Сервер Сценариев Windows, после создания объекта, подключает внешний интерфейс объекта к файлу сценария. Когда объект инициирует событие, Сервер сценариев Windows вызывает подпрограмму с именем, состоящим из двух частей - значения параметра strPrefix и названия события.
     Например, если для strPrefix установлено значение "MyObj_", а объект инициирует событие "OnBegin", то Сервер Сценариев Windows вызовет подпрограмму "MyObj_OnBegin", расположенную в файле сценария.

     Метод Wscript.DisconnectObject: Wscript.DisconnectObject(MyObject).
Этот метод используется для отключения Сервера Сценариев от предварительно подключенного объекта (MyObject). Если указанный объект подключен не был - ничего не происходит, т.е. команда просто игнорируется.

Пример 3. Создание объекта с обработчиком его событий:
 ... ... ...
var MyObject = Wscript.CreateObject("SomeObject", "MyEvent");
MyObject.SomeMethod;
 ... ... ...
function MyEvent_Event(strName)
{
Wscript.Echo(strName)
}
 ... ... ...
// После завершения работы сценария, отключаем подключенный
// ранее объект, и устанавливаем его значение в Nothing:
Wscript.DisconnectObject(MyObject);
MyObject = Nothing;

     Этот условный фрагмент кода создает фиктивный объект "SomeObject" и подключает его к файлу сценария. Затем сценарий вызывает метод "SomeMethod" созданного объекта. Если при вызове возникает событие "Event", то вызывается подпрограмма "MyEvent_Event". (Пример чисто демонстрационный, и работать он не будет, поэтому не пробуйте его запускать на исполнение.)
     Замечание. Обратите внимание, что в JavaScript отсутствует разделение на "подпрограммы" и "функции", как, например в бэйсике. В качестве подпрограммы здесь используется та же функция, только не возвращающая никакого значения. Если же необходимо передать из функции полученное значение, то в теле функции используется оператор "return". Мы еще будем возвращаться к этому.

     Метод Wscript.GetObject: Wscript.GetObject(strPathname [,strProgID] ], [strPrefix])
Этот метод создает Automation-объект из файла или объекта, указанного параметром strProgID. Используйте метод GetObject, когда уже имеется текущий образец объекта, или если Вы хотите создать объект из файла, который уже загружен. Если еще нет текущего образца, и Вы не хотите создавать объект из файла, который уже загружен, используйте метод CreateObject.
StrPathname: обязательный параметр, содержащий полный путь и имя файла, из которого создается объект. Если параметр strPathname - строка нулевой длины (""), то метод GetObject возвратит новый образец объекта указанного типа. Если же параметр strPathname опущен, то GetObject возвратит активный в настоящее время объект указанного типа. Если такого объекта в этот момент не существует, метод возвратит ошибку.
StrProgID: строка, определяющая программный идентификатор(ProgID) создаваемого объекта.
StrPrefix: то-же, что и в методе CreateObject

     Наконец, последний метод: Wscript.Quit(КодВозврата) - завершает работу сценария с указанным кодом возврата.

     Я понимаю, что несколько утомил Вас теорией. Меня самого на сон клонит ;-). Но ничего не поделаешь, если хочешь писать программы, даже довольно простые, надо знать, на что хотя-бы можно расчитывать в своей программе. И глупо будет оказаться в ситуации, о которой говорят: "Он даже не знает, чего он не знает...". В свое оправдание я могу только пообещать в следующих выпусках использовать побольше интересных примеров.


Автор и ведущий рассылки Игорь Балезин
Возможно-ли зарабатывать в Интернет?


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное