'************* Конец *********************************************/
Ввод строк в графическом режиме
В сценариях VBScript в графическом режиме информацию можно вводить с помощью диалогового окна, создаваемого внутренней функцией InputBox
(рис. 2.6).
Рис. 2.6.Диалоговое окно со строкой ввода
Пример сценария, использующего функцию InputBox
, представлен в листинге 2.18 (подробное описание параметров функции InputBox см. в приложении 1 ).
Листинг 2.18. Ввод одной строки с помощью функции InputBox (VBScript)
'*******************************************************************
' Имя: InpBox.vbs
' Язык: VBScript
' Описание: Пример использования функции InputBox
'*******************************************************************
Option Explicit
Dim s,s1 ' Объявляем переменные
s1="Пример" & vbCrLf & "диалогового окна" & vbCrLf & "для ввода строки"
' Выводим диалоговое окно со строкой ввода на экран
s=InputBox(s1,"Диалоговое окно VBScript")
' Выводим диалоговое окно с введенной строкой
MsgBox "Было введено: " & s
'************* Конец *********************************************/
К сожалению, ни в языке JScript, ни в объектной модели WSH нет функции или метода, позволяющих напрямую создавать диалоговые окна со строкой ввода. Однако при помощи файлов сценариев с XML-разметкой, описанных в главе 3, функции языка VBScript ( InputBox
в частности) можно использовать внутри JScript-сценария (соответствующий пример приведен в листинге 3.11).
Получение свойств WSH и запущенного сценария
На практике часто бывает необходимо знать определенные атрибуты WSH (например, с помощью какого приложения-сервера был запущен сценарий) и сценария, работающего в данный момент (например, имя этого сценария или путь к каталогу, в котором он находится). Некоторые параметры WSH и исполняемого сценария можно определить непосредственно с помощью соответствующих методов объекта WScript
:
□ полный путь к приложению-серверу (cscript.exe или wscript.exe);
□ имя каталога, в котором находится приложение-сервер;
□ номер используемой версии WSH;
□ полный путь к исполняемому сценарию;
□ имя исполняемого сценария.
Для проверки режима, в котором был запущен сценарий, можно предложить функцию IsCScript
(ниже приведена реализация этой функции на языке JScript), которая будет возвращать true
, если использовался хост cscript.exe (консольный режим), и false
, если использовался wscript.exe (графический режим):
function IsCScript() {
//Проверка режима, в котором запущен сценарий
return ("с"== WScript.FullName.toLowerCase().charAt(WScript.FullName.length - 11));
}
Как мы видим, вся работа функции IsCScript
состоит в определении того, с какой буквы начинается имя приложения-сервера ("с" для cscript.exe или "w" для wscript.exe).
Полный путь к текущему каталогу, т.е. к каталогу, из которого был запущен сценарий, хранится в свойстве CurrentDirectory
объекта WshShell
.
Если сценарий был запущен не из того каталога, в котором находится сам файл со сценарием, то текущий каталог не будет совпадать с каталогом сценария. Для того чтобы получить путь к каталогу сценария, нужно выделить этот путь из свойства WScript.ScriptFullName
, содержащему полный путь к выполняемому сценарию (включая имя файла). На языке JScript это можно реализовать с помощью функции GetScriptDir
следующего содержания:
function GetScriptDir() {
var ScriptDir;
ScriptDir = WScript.ScriptFullName;
ScriptDir = ScriptDir.substring(0, ScriptDir.lastIndexOf("\\"));
return ScriptDir;
}
Полные тексты сценариев на языках JScript (PropScript.js) и VBScript (PropScript.vbs), выводящих на экран сведения о свойства WSH и запущенного сценария, приведены в листингах 2.19 и 2.20 соответственно; результат работы сценария PropScript.js представлен на рис. 2.7.
Рис. 2.7.Результаты выполнения сценария PropScript.js в графическом режиме
Листинг 2.19. Вывод свойств WSH и запущенного сценария (JScript)
/*******************************************************************/
Читать дальше