Книга Гюнтера Борна знакомит читателя с основами программирования сценариев для Microsoft Windows Script Host 2.0. В ней подробно и доступно описано, как с помощью сценариев автоматизировать решение таких рутинных задач, как резервное копирование файлов, управление учетными записями пользователей, настройка оболочки Windows и вызов приложений. В книге много примеров на языках VBScript и Jscript. На прилагаемом компакт-диске, кроме исходных текстов и примеров, вы найдете справочные руководства по языкам программирования сценариев VBScript и JScript, описание объектной модели WSH, утилиты и электронную версию книги на английском языке. Названия всех команд, диалоговых окон и других элементов ОС приведены как на русском, так и на английском языках.
Благодарности
Введение
ЧАСТЬ I.ОСНОВЫ ПРОГРАММИРОВАНИЯ СЦЕНАРИЕВ
ГЛАВА 1. Введение в Windows Script Host
Возможности сценариев WSH
Несколько замечаний о VBScript и JScript
Переход к WSH 2
Создание и использование сценариев
Создаем первый сценарий на VBScript
Создаем такой же сценарий на JScript
Исполнение сценариев WSH
Передача аргументов сценарию
Новый формат .wsf-файлов
Подключение внешних файлов
Использование библиотек типов
Отладочные функции
ГЛАВА 2. Инструментальные средства и методика разработки
Создание сценариев
Использование шаблонов сценариев
Редактирование сценариев
Вызов редакторов сценариев
Установка и удаление элементов управления ActiveX
Регистрация элемента управления
Удаление элемента управления
Отладка сценариев
Трассировка программ
Работа с отладчиком Microsoft Script Debugger
ГЛАВА 3. Основы программирования с использованием объектов
Объекты
Пример простого объекта
Объектная модель
Наборы
Методы
Пример из практики
Доступные объекты
Получение информации об объектах, методах и свойствах
ГЛАВА 4. Введение в VBScript
Базовые возможности
Операторы, непрерывные строки и комментарии
Константы и переменные
Операторы
Управляющие структуры
Циклы
Функции и процедуры
Дополнительные возможности
Обработка ошибок
Регулярные выражения (в VBScript 5.0 и выше)
Классы (только для VBScript 5.0)
Оператор With (только в VBScript 5.0)
ГЛАВА 5. Введение в JScript
Что такое JScript?
Структура программы на JScript
Комментарии
Операторы
Константы
Переменные
Использование Escape-последовательностей в строках
Операторы
Оператор присваивания
Операторы сравнения
Арифметические операторы
Операторы инкремента и декремента
Логические операторы
Старшинство операторов
Управляющие структуры
Оператор if
Условный оператор
Цикл for
Цикл for...in
Цикл while
Цикл do...while
Оператор switch
Ключевые слова break и continue
Функции и объекты
Пользовательские функции
Встроенные функции
Объекты
Массивы
ЧАСТЬ II.ИНТЕРАКТИВНАЯ РАБОТА СО СЦЕНАРИЯМИ
ГЛАВА 6. Создание простых диалоговых окон на WSH
Использование метода Echo
Использование метода Echo в программах на VBScript
Применение метода Echo в окне командной строки
Метод Echo в программах на JScript
Перевод строки при использовании метода Echo
Применение функции MsgBox в программах на VBScript
Определение значка и кнопок диалогового окна
Установка фокуса на кнопке
Определение кнопки, которой закрыто диалоговое окно
Пример: создаем на VBScript приветствие при регистрации в системе
Использование метода Popup
Использование метода Popup в программах на VBScript
Еще один пример использования метода Popup на JScript
ГЛАВА 7. Работа с объектами WSH
Использование объекта WScript
Получение свойств WSH и сценария
Получение свойств обработчика языка
Обращение к аргументам сценария
Обращение к переменным окружения
Обращение к переменным окружения в сценарии
Создание и освобождение объектов
Отличия методов CreateObject и GetObject
Использование метода DisconnectObject
Запуск других программ из сценария
Запускаем Notepad из сценария
Запуск Calculator из программы на JScript
Пути с пробелами
Метод Quit
Исполнение команд MS-DOS с помощью метода Run
ГЛАВА 8. Получение вводимой пользователем информации в сценариях WSH
Вызов диалогового окна ввода на VBScript
Вызов диалогового окна ввода на JScript
Решение для WSH 2: объединение VBScript и JScript
Метод prompt из Internet Explorer
ГЛАВА 9. Работа с формами
Создание диалогового окна About с помощью Internet Explorer
Вывод HTML-файла методом showModalDialog
Вывод диалогового окна About на языке VBScript
Вывод диалогового окна About на JScript
Создание формы с помощью Internet Explorer и WSH
HTML-код для формы
Вывод формы
Вывод формы с помощью сценария WSH на JScript
Вывод диалогового окна выбора файла
Улучшаем форму
ЧАСТЬ III. ОСОБЫЕ ВОЗМОЖНОСТИ СЦЕНАРИЕВ
ГЛАВА 10. Создание ярлыков
Ярлыки: основные понятия
Применение метода CreateShortcut
Ярлыки: идем дальше
Применение объекта SpecialFolders
Создание ярлыка на рабочем столе
Создание ярлыка в меню Start
Создание ярлыка с аргументами
Считывание свойств ярлыка
Обновление ярлыка
Создание ярлыка для Web-узла
ГЛАВА 11. Дополнительные возможности WSH
Как получить имя пользователя, домена или компьютера
Подключение к сетевому принтеру
Подключение принтера с помощью AddWindowsPrinterConnection
Подключение принтера с помощью AddPrinterConnection
Удаление подключения принтера
Создание списка всех подключенных принтеров
Установка принтера по умолчанию
Подключение сетевых дисков
Сценарии регистрации
Доступ к реестру Windows
Доступ к реестру в WSH
Доступ к реестру из VBScript
Обработка ошибок периода выполнения при доступе к системному реестру
Проверка наличия раздела
Доступ к реестру в WSH
Перечисление разделов и параметров реестра
Доступ к реестру на удаленном компьютере
Изменение пути для установки Windows 98
Сокрытие имени последнего зарегистрировавшегося пользователя
Получение имени рабочей группы в Windows 98
ГЛАВА 12. Использование файловой системы и команд ввода-вывода
Объектная модель FileSystemObject
Создание FileSystemObject
Методы объекта FileSystemObject
Обращение к дискам
Выводим список всех дисков компьютера
Вывод свойств диска
Обращение к папкам и файлам
Выводим список вложенных папок данной папки
Создание, перемещение, переименование и удаление папок
Выводим список всех файлов папки
Получение атрибутов и дат файлов
Копирование и удаление файлов
Создание резервных копий папок
Доступ к текстовым файлам
Чтение данных из текстового файла
Подводные камни при просмотре текстовых файлов с помощью диалоговых окон и браузера
Запись данных в текстовый файл
Добавление нового текста в существующий файл
Замена текста в файле
Использование диалогового окна выбора папки
Выбор папок методом BrowseForFolder
Выбор файлов методом BrowseForFolder
ГЛАВА 13. Управление окнами и приложениями из сценариев
Задержка выполнения сценария
Снижение нагрузки на процессор методом Sleep
Приостановка как способ решения проблемы асинхронных процессов
Активизация приложения методом AppActivate
"Подводные камни" при применении метода AppActivate
Имитация нажатия клавиш методом SendKeys
Применение SendKeys в WSH 2
Работа с двумя приложениями посредством SendKeys
Настройка Windows с помощью сценариев регистрации
Установка сценария регистрации
Глобальные сценарии регистрации и выхода из системы
Использование сценариев при запуске и отключении системы
Сценарии запуска и отключения системы в Windows 95/98
ГЛАВА 14. Приемы программирования и советы
Ошибки периода выполнения
Обработка ошибок периода выполнения в VBScript
Обработка ошибок периода выполнения в JScript
Генерация ошибок периода выполнения в VBScript
Пути и даты
Получение пути сценария
Получение текущего каталога
Установка папки по умолчанию
Получение имени текущего диска
Вычисление разницы дат
Длинные имена, команда At и системные вызовы
Запуск сценария с помощью планировщика Windows NT
Работа с длинными именами в сценариях
Выполнение системных вызовов методом Run
Блокировка рабочей станции в Windows 2000
Вызов диалогового окна Copy Disk
Вызов диалогового окна Format
Вызов страницы свойств Screen Saver
Вызов модулей из Control Panel
Обработка сетевых подключений методом Run
Пользовательские диалоговые окна и вывод
Применение табуляции и концов строк
Отображение консольного ввода и вывода
Запись в строку и чтение из строки
Конвейеризация программного вывода
Поточный обмен с файлами
Регистрация вывода из сценария
Печать из WSH-сценария
Работа с файлами
Проверка наличия файла или папки
Проверка наличия файлов в папке
Проверка, используется ли база данных Access
Копирование файла
Изменение имени файла или папки
Поиск файла
Составление списка всех файлов-ярлыков
Воспроизведение звука
Воспроизведение звука с помощью Internet Explorer
Оболочка Windows
Проверка версии оболочки
Упорядочение окон рабочего стола
Открытие окон папок
Доступ к диалоговым окнам оболочки Windows
Подключение телефонных соединений
ЧАСТЬ IV. ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ А. Ресурсы WSH в Интернете
ПРИЛОЖЕНИЕ Б. Безопасность сценариев
Частичная блокировка WSH
Предотвращение автоматического выполнения сценариев WSH
Параметры безопасности сценариев WSH
Заключительные замечания
Предметный указатель
ОТРЫВОК
Глава 1Введение в Windows Script Host
Возможности сценариев WSH
Несколько замечаний о VBScript и JScript
Переход к WSH 2
Создание и использование сценариев
Создаем первый сценарий на VBScript
Создаем такой же сценарий на JScript
Исполнение сценариев WSH
Передача аргументов сценарию
Новый формат .wsf-файлов
Подключение внешних файлов
Использование библиотек типов
Отладочные функции
До Windows 98 в Windows практически не было средств автоматизации резервного копирования файлов и выполнения рутинных операций по администрированию системы. Конечно, определенные задачи, скажем, копирование файлов, можно было выполнить и с помощью старых пакетных файлов MS-DOS (BAT) в окне командой строки. Однако в BAT-файлы можно помещать лишь простые последовательности команд MS-DOS, которые не поддерживают диалоговые окна и сообщения (среди их недостатков можно отметить поддержку только простого ветвления и отсутствие настоящей функциональности циклов). Запись
макрокоманд в Windows 3.1 позволила несколько расширить круг выполняемых действий, обеспечивая запись и воспроизведение простых последовательностей нажатий клавиш и щелчков мыши. Но у средства записи макрокоманд не было программного доступа.
В поиске более мощных средств автоматизации пользователи обратились к решениям сторонних фирм, таким как PowerBatch, или обратились к средам программирования типа Delphi, Microsoft Visual Basic и Microsoft Visual C++. Но для многих пользователей Windows они были неприемлемы из-за их сложности и стоимости.
Поскольку в Microsoft Office входит язык VBA (Visual Basic for Applications), а Web-разработчикам известны языки сценариев Microsoft Visual Basic, Scripting Edition (VBScript) и JavaScript от Netscape, создание Microsoft средства работы со сценариями для Windows было лишь вопросом времени. Windows Script Host (WSH) и является таким средством, которое попадает в категорию технологий Microsoft Windows Script.
WSH - это автономный сервер сценариев, позволяющий исполнять сценарии на уровне ОС. Например, вы можете вызвать сценарий из командной строки или из Windows Explorer, дважды щелкнув файл сценария. WSH удобен для решения многих задач администрирования, для которых пользовательский интерфейс практически не нужен. Он намного гибче в сравнении со старыми пакетными файлами MS-DOS, так как JScript и VBScript являются мощными языками сценариев с полным доступом к объектам WSH и любым другим объектам автоматизации.
ПРИМЕЧАНИЕ До выхода второй версии Windows Script Host назывался Windows Scripting Host. Я буду обозначать обе версии аббревиатурой WSH.
Возможности сценариев WSH
Сценарии позволяют решать широкий спектр задач по автоматизации и настройке Windows-систем. Вот некоторые из них.
Резервирование и восстановление файлов в системе (эта возможность особенно удобна, если требуется сохранить небольшое число файлов с вашей машины на сетевом сервере).
Выключение или перезапуск Windows одним щелчком. Сценарий также позволяет добавить специальные задачи, которые нужно выполнить во время выключения или запуска системы: например, резервирование определенных файлов после закрытия приложений или занесение имени пользователя в журнал после загрузки системы. (Возможность протоколирования информации посредством сценариев особенно полезна в Windows 95/98; в Windows NT/2000 многие функции протоколирования встроены.)
Интегрирование приложений с их данными. Например, сценарий может запустить приложение из пакета Office, загрузить и обработать документ, вывести его на печать и закрыть приложение. Подобным образом вы можете ассоциировать документ с любым приложением.
Решение таких задач администрирования системы, как добавление, обновление и удаление пользовательских учетных записей в Windows NT/2000. Сценарий WSH позволяет автоматизировать все три задачи с помощью интерфейса ADSI (Active Directory Service Interfaces), поддерживаемого Windows NT/2000.
Прямой доступ к оболочке Windows (для создания ярлыков или подключения сетевых устройств, таких как диски и принтеры) через соответствующие объекты.
Считывание значений переменных окружения и получение сведений о Windows.
Запуск программ и управление объектами Automation.
Вывод диалоговых окон, информирующих пользователя о состоянии программы или получающих вводимую им информацию.
Обращение к оболочке Windows и интерфейсам прикладного программирования (API) для управления окнами и приложениями.
Несколько замечаний о VBScript и JScript
WSH, поставляемый с Windows 98/2000 (его также можно загрузить из Интернета для Windows 95/NT 4), поддерживает два языка программирования: VBScript и JScript. VBScript использует тот же синтаксис, что и Visual Basic, и по сути является подмножеством этого языка. JScript представляет собой Microsoft-реализацию ECMAScript, не зависимого от производителя языка программирования на основе JavaScript.
Этих языков достаточно для знакомства с миром программирования сценариев. Однако Microsoft создан открытый интерфейс WSH, что позволяет сторонним производителям интегрировать собственные обработчики для поддержки других языков, таких как Perl, Tool Control Language (Tcl) и Rexx.
Переход к WSH 2
Первоначально WSH 1 поставлялся с Windows NT 4 Option Pack. Он также входит в состав Windows 98. Если WSH 1 не активен, его следует установить как дополнительный компонент Windows. WSH 2 - неотъемлемая часть Windows 2000, так что если вы работаете в этой ОС, установка WSH 2 не требуется.
Чтобы выяснить, установлен ли в вашей системе WSH, просто откройте папку (например, с помощью Windows Explorer), в которой есть файлы с расширением .js, .vbs или .wsf. Если значки, которыми обозначены эти файлы, совпадают с показанными ниже (рис. 1-1), то установлен WSH 2. Если для обозначения файлов с расширением .wsf используется значок "неизвестный документ", то установлен WSH 1; если же все файлы с указанными расширениями обозначены такими значками, WSH на компьютере не установлен.
Отличия VBScript от Visual Basic/VBA и JScript - от JavaScript
Если вы раньше программировали на Visual Basic, VBA или писали сценарии для документов HTML на VBScript или JScript, то написание сценариев на WSH не должно вызвать у вас затруднений. И все же кое-что обязательно надо иметь в виду.
Программы на Visual Basic могут быть скомпилированы в EXE-файлы, но в WSH такой функциональности нет. В WSH вам придется держать все сценарии в простых текстовых .vbs-, .js- или .wsf-файлах. Для интерпретации содержимого файла сценария WSH использует обработчики Windows Script, так что можно создавать сценарии с помощью простого текстового редактора (такого как Notepad).
В языки VBScript и JScript (поставляются с WSH 2) не входят конструкции вроде оператора Declare из Visual Basic и VBA, позволяющие обращаться к внешним функциям и процедурам. В VBScript нет процедур для расширенной обработки ошибок в период выполнения (таких как On Error GoTo метка). Ни VBScript, ни JScript не поддерживают явное объявление типов данных. Любая переменная рассматривается в них как Variant.
Объектная модель WSH отличается от объектной модели Internet Explorer. Так, в WSH не поддерживается объект window.document для вывода информации пользователем.
Поскольку у среды WSH нет расширенного пользовательского интерфейса (который есть у Internet Explorer), объектная модель WSH не поддерживает событий пользовательского интерфейса (подобных onclick в сценариях HTML). Однако WSH все же поддерживает обработку событий, в чем вы еще убедитесь. Чтобы обновить Windows 95/98/NT 4 до WSH 2, WSH надо установить вручную. Соответствующие версии WSH 2 для каждой из этих ОС есть на прилагаемом CD. Последние версии файлов WSH также доступны для загрузки по адресу http://msdn.microsoft.com/scripting (бесплатно).
ПРИМЕЧАНИЕ В случае Windows NT 4 вы также должны установить Service Pack 3. Для работы с WSH в Windows 95/NT 4 требуется Internet Explorer 4 или более поздней версии. Чтобы WSH 2 работал с Internet Explorer 3 под Windows 95, нужно установить DCOM. Подробнее об этом см. Web-сайт Microsoft по адресу http://msdn.microsoft.com/scripting. WSH и различные версии обработчиков языков
Необходимо знать, какая версия WSH установлена у вас на компьютере и какие версии обработчиков языков (language engines) применяются для исполнения сценариев. После версии 3.1 (поставлявшейся с WSH 1) Microsoft выпустила несколько обновлений обработчиков языков. В версии 3.1а исправлено несколько ошибок. С Visual Studio 6 поставляется версия 4. В Internet Explorer 5 входит версия 5, в которой исправлены некоторые ошибки и расширены возможности языка. Она также предлагается Microsoft как отдельное обновление, доступное по адресу http://msdn.microsoft.com/scripting.
WSH 2 является частью Windows Script 5.1, куда также входит версия 5.1 обработчиков VBScript и JScript. Обработчики языков версии 5.1 можно использовать с Internet Explorer 4 и 5 и с IIS версий 3 и 4.
Создание и использование сценариев
Готовы ли вы создать свой первый сценарий и начать с ним работать? Для начала мы создадим простую программу, которая выводит диалоговое окно с сообщением Hello, world. Она позволит проиллюстрировать основы программирования и исполнения сценариев.
Руководство разработчика на Microsoft Script Host 2.0. / Г. Борн - СПб: Питер, 2001. - 480 с.
|