Андрей Попов - Windows Script Host для Windows 2000/XP
/*****************************************************************/
/* РРјСЏ: ShowEnvir.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                */
/* Описание: Получение значений некоторых переменных среды      */
/*****************************************************************/
var WshShell,WshSysEnv;
//Создаем объект WshShell
WshShell = WScript.CreateObject("WScript.Shell");
//Создание коллекции WshEnvironment
WshSysEnv = WshShell.Environment("SYSTEM");
WScript.Echo(WshSysEnv("NUMBER_OF_PROCESSORS"));
WScript.Echo(WshShell.Environment.Item("WINDIR"));
/************* Конец *********************************************/
Метод ExpandEnvironmentString
В следующем примере на экран выводится путь к каталогу Windows (листинг 1.16).
Листинг 1.16. Печать значений переменных среды (ExpandEnvironmertStrings)/*****************************************************************/
/* РРјСЏ: ExpEnvStr.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                */
/* РљРѕРґРёСЂРѕРІРєР°: WindowsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Описание: Получение значений переменный среды с помощью     */
/*          метода ExpandEnvironmentString                     */
/*****************************************************************/
var WS = WScript.CreateObject("WScript.Shell");
WScript.Echo("Каталог Windows:"+WS.ExpandEnvironmentStrings("%WinDir%"));
/************* Конец *********************************************/
Метод LogEvent
В Windows NT/2000/XP события записываются в системном журнале, а в Windows 9х — в файле WSH.log, расположенном в каталоге пользователей Windows. Запись в WSH.log будет содержать время события, его тип и текст. Типы сообщений описаны в табл. 1.9.
Таблица 1.9. Типы сообщений (параметр intType)
Код Значение Код Значение 0 SUCCESS 4 INFORMATION 1 ERROR 8 AUDIT_SUCCESS 2 WARNING 16 AUDIT_FAILUREВ следующем примере производится протоколирование работы сценария регистрации (здесь предполагается, что если этот сценарий отработал успешно, то функция RunLoginScript возвращает true, в противном случае — false):
var WshShell = WScript.CreateObject("WScript.Shell");
rc = RunLoginScript();
if (rc) WshShell.LogEvent(0,"Logon Script Completed Successfully");
else WshShell.LogEvent(1,"Logon Script failed");
Метод Popup
Если в методе не задан параметр strTitle, то по умолчанию заголовком окна будет "Windows Script Host."
Параметр nType может принимать те же значения, что и в функции MessageBox из Microsoft Win32 API. В табл. 1.10 описаны некоторые возможные значения параметра nType и их смысл (полный список значений этого параметра можно посмотреть в описании функции MessageBox в документации по функциям Windows API).
Таблица 1.10. Типы кнопок и иконок для метода Popup
Значение nType Константа Visual Basic Описание 0 vbOkOnly Выводится кнопка OK 1 vbOkCancel Выводятся кнопки OK и Отмена (Cancel) 2 vbAbortRetryIgnore Выводятся кнопки Стоп (Abort), Повтор (Retry) и Пропустить (Ignore) 3 vbYesNoCancel Выводятся кнопки Да (Yes), Нет (No) и Отмена (Cancel) 4 vbYesNo Выводятся кнопки Да (Yes) и Нет (No) 5 vbRetryCancel Выводятся кнопки Повтор (Retry) и Отмена (Cancel) 16 vbCritical Выводится значок Stop Mark 32 vbQuestion Выводится значок Question Mark 48 vbExclamation Выводится значок Exclamation Mark 64 vbInformation Выводится значок Information MarkЗамечание
В сценариях, написанных на языке VBScript, можно непосредственно использовать именованные константы типа vbOkCancel без предварительного их объявления. Для того чтобы использовать такие константы в JScript-сценариях, их нужно предварительно объявить как переменные и присвоить нужные значения (например, var vbOkCancel=1;). Естественно, в любых сценариях вместо имен констант можно использовать их числовые значения.
В методе Popup можно комбинировать значения параметра, приведенные в табл. 1.10. Например, в результате выполнения следующего сценария:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Popup("Копирование завершено успешно", 5, "Ура",65);
на экран будет выведено информационное окно, показанное на рис. 1.11, которое автоматически закроется через 5 секунд.
Р РёСЃ. 1.11. Рнформационное РѕРєРЅРѕ, созданное методом Popup
Метод Popup возвращает целое значение, с помощью которого можно узнать, какая именно кнопка была нажата для выхода (табл. 1.11).