Сценарии в windows
Сегодня, я хотел рассказать вам о сценариях в windows. Напомню, сценарии -
файлы содержащие код на зарегистрированных в ОС языках. Обычно имеют
расширение vbs, js, jse для языков JScript, VBScript. Языки
интерпретируются собственно зарегистрированными engine-ами. В интернете
есть engine ActivePerl, другие не искал. У jscript и vbscript есть
возможность создавать и использовать сервера автоматизации такие как
Microsoft Access. Собственно в состав WSH (Windows Scripting Host) -
интерфейс между файлами сценариев и зарегистрированными engine-ами входят
примеры автоматизации именно приложений офиса. В версии WSH 5.6, если не
ошибаюсь, появилась возможность создавать файлы сценариев в формате XML
(описание смотрите в MSDN). Там, в одном файле можно писать сценарии на
разных языках. Код делится на задания (job). Запускать нужно именно задания
по имени в указанном файле. Файлы сценариев в XML имеют расширение wsf.
Создание сервера сценария осуществляется методом WScript.CreateObject(). Ее
параметром должен быть ProgID. Есть еще интересная функция GetObject,
которая тоже создает сервера автоматизации. Ее параметром могут быть строка
соединения ADSI или путь к файлу с расширением, для которого
зарегистрирован редактор, поддерживающий автоматизацию.
Пример на jscript с ProgID:
var oacc = WScript.CreateObject("Access.Application");
Пример с ADSI (точно работает в W2000AS):
var ns = GetObject("WinNT://myserver");
"Ну и что дальше?",- скажете вы. "Зачем мне сервер автоматизации?" Я думаю
он вам все таки может пригодиться. Как минимум, сценарии windows мощнее
пакетных файлов (bat) и вы можете написать на jscript более сложную логику.
У вас есть доступ к реестру. Точно не проверял, но думаю можно использовать
и "JScript.Encode" и не показывать открытым кодом, что делает сценарий.
Чтобы получить закодированный код из Jscript, попробуйте воспользоваться
утилитой screnc.exe. Ее можно взять на сайте Microsoft (Usage: screnc [/?]
[/s] [/f] [/xl] [/l ScriptLanguage] [/e DefaultExtension]