А. Л. kochurov@narod ru icon

А. Л. kochurov@narod ru



НазваниеА. Л. kochurov@narod ru
Дата конвертации09.07.2012
Размер69.49 Kb.
ТипДокументы
1. /VB_mail.doc
2. /Windows-Script-Components.doc
3. /about-mail.txt
4. /asp-example-mail.txt
5. /asp-mail.txt
6. /cdo-mail.txt
7. /cdo-send-message.txt
8. /delphi-mail.txt
9. /js-mail.txt
10. /js2-mail.txt
11. /mail-programming.txt
12. /mapi-vba-mail.txt
13. /script-mail.txt
14. /vb-mail.txt
15. /vbs-mail.txt
16. /vbscript.txt
Valery V shmeleff Moscow / Russia
А. Л. kochurov@narod ru

Windows Script Components: Курс молодого бойца

Пример создания и использования Windows Script Components

(c) 2003 Кочуров А.Л. kochurov@narod.ru

Адрес статьи http://kochurov.narod.ru/articles/wscreview/wscreview.htm


Windows Script Components. Что это такое и зачем они нужны?

Сервер сценариев Windows (Windows Script Host, WSH), являющийся начиная с Windows 2000 частью операционной системы, и доступный также для более ранних версий Windows, позволяет пользователю выполнять скрипты (сценарии), написанные на таких языках, как Visual Basic Script (VBScript) и JavaScript (JScript). Эта возможность по достоинству оценена продвинутыми пользователями и администраторами - WSH позволяет исполнять полноценные программы, написанные на объектно-ориентированных языках высокого уровня, а наличие большого количества зарегистрированных в системе OLE-объектов дает скриптам большие возможности по управлению компьютером и установленными на нем приложениями.


Эти OLE-объекты (точнее, Automation-серверы, а еще точнее COM-серверы с интерфейсом IDispatch) представляют собой приложения в виде DLL, EXE, OCX - файлов. Такие компоненты разрабатываются на Visual Basic, С++, Delphi и подобных компилируемых языках, то есть для их создания нужно иметь соответствующий компилятор.



Однако с появлением технологии Windows Script Components (WSC) у разработчиков появилась возможность создания регистрируемых в системе Automation-серверов, написанных на упомянутых выше скриптовых языках, которые будут работать на любой машине, где установлен WSH. Для разработки не нужны специальные среды разработки и компиляторы - WSC представляет собой обычный текстовый файл, содержащий XML-разметку.


Таким образом, достоинства WSC следующие: удобство, быстрота и простота разработки (для разработки достаточно лишь иметь текстовый редактор типа Notepad.) Кроме того, они весьма компактны и не требуют наличия библиотек времени выполнения (runtime) компилятора.


Недостатки: малое быстродействие по сравнению с компилируемыми языками и ограниченные возможности языков, на которых пишутся WSC - например, из скриптовых языков нельзя обращаться к функциям WinAPI.


Следовательно, использовать WSC имеет смысл в тех случаях, когда скрипт может реализовать требуемую функцию, быстродействие не критично и нет смысла разрабатывать компоненты на компилируемых языках. WSC также более удобны в отладке чем компилируемые компоненты - изменения вносятся прямо в исходный код и не требуют перекомпиляции. Традиционные области применения WSC - создание компонент, выполняющихся на web-серверах, встроенные в HTML-страницу компоненты, и написанные под конкретную задачу штучные "произведения", не предназначенные для широкого распространения. Вообще, WSC - бальзам на душу поборников всего лицензионного - если у вас Windows лицензионная, то и WSC - тоже :).


Чтобы не быть голословным в описании достоинств WSC, я портировал в этот формат из VB6 свою разработку - компоненту V7Backup, предназначенную для автоматизации резервного копирования информационных баз системы 1С:Предприятие 7.7. Дальнейшая часть статьи представляет собой описание шагов, необходимых для создания WSC на примере реального класса, входящего в состав V7Backup - класса V7Backup.Mail. Этот класс имеет следующие свойства и методы:


Свойства класса V7Backup.Mail

Свойство Описание Доступ Значение по умолчанию

Address Поле "Кому" письма Чтение/Запись ""

Body Текст (тело) письма Чтение/Запись ""

CanWork Истина, если объект нормально функционирует и почта может быть отправлена Чтение

From Поле "От" письма Чтение/Запись ""

SMTPPassword Пароль пользователя SMTP-сервера Чтение/Запись ""

SMTPPort Порт SMTP Чтение/Запись 25

SMTPServer SMTP-сервер для отправки почты Чтение/Запись ""

SMTPUserName Имя пользователя SMTP-сервера Чтение/Запись ""

Subject Тема письма Чтение/Запись ""


Методы класса V7Backup.Mail

Метод Описание Аргументы Возвращаемое значение

AddAttachment Прикрепляет указанный файл к письму в качестве вложения FilePath Нет

Reset Очистка тела письма и удаление вложений Нет Нет

Send Отправка письма Нет Нет


Забегая вперед, следует заметить, что создваемый нами объект будет представлять "обертку" для класса CDO.Message, относящегося к Collaboration Data Objects (CDO 2000). CDO 2000 является составной частью Windows, начиная с Windows 2000, поэтому в более ранних версиях ОС наш объект работать не будет, о чем и уведомит значением свойства CanWork=False.


До начала работы следует посетить раздел сайта Microsoft, посвященный скриптовым технологиям - http://www.microsoft.com/scripting и скачать оттуда последнюю версию WSH (5.6 на момент написания статьи), документацию по WSH (на английском языке), и самое главное - Windows Script Component Wizard - инструмент, позволяющий выполнить рутинную работу по созданию WSC.


Далее мы пройдем все шаги с применением WSC Wizard по созданию "скелета" класса и опишем дальнейшие ручные операции по его корректировке и добавлению необходимой функциональности. Разобьем условно создание компоненты на три шага: создание заготовки компоненты с помощью мастера, корректировка созданной заготовки, добавление функциональности.


Шаг 1. Создание заготовки компоненты с помощью мастера

Запустим Windows Script Component Wizard и заполним первую страницу как показано на рисунке:


Расположение результирующего файла (Location) можно указать любое.


На следующей странице указывается язык, на котором будет написан WSC, поддержку специальных возможностей включать не надо. На первоначальном этапе отладки имеет смысл установить флажок "Error checking" тогда при регистрации компоненты будет проверяться ее синтаксис, а после окончания разработки эту опцию отключить.


Далее заполняются свойства в соответствии с таблицей свойств объекта V7Backup.Mail.


Аналогично перечисляются и методы. Страницу мастера с настройкой событий можно в нашем случае пропустить.


На этом создание заготовки компоненты можно считать завершенным.


Шаг 2. Корректировка созданной заготовки

Откроем полученный файл MailObj.wsc любым текстовым редактором, например Notepad'ом. Мы увидим обычный XML- файл с достаточно прозрачной структурой, которая хорошо описана в документации по WSC, поэтому нет смысла здесь описывать ее еще раз. Внесем в полученный файл небольшие правки. Во первых, нужно указать кодировку XML-файла как кириллическую, иначе мы не сможем написать в нем ни одного слова на великом и могучем:




Далее, все объявленные нами методы не возвращают никаких значений, то есть в терминологии Visual Basic являются процедурами. Мастер объявил их для нас как функции, возвращающие значения:


function AddAttachment(FilePath) AddAttachment = "Temporary Value"end function

Мы должны все три функции объявить как процедуры:


sub AddAttachment(FilePath)


end sub

Шаг 3. Добавление функциональности

В начало скрипта перед сгенерированным мастером объявлением и инициализацией переменных добавим опцию Option Explicit, означающую, что все используемые переменные должны быть обязательно объявлены, и константы CDO:


Option Explicit


' Константы CDO

Private Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"

Private Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"

Private Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"

Private Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"

Private Const cdoSMTPAuthenticate = _

"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"

Private Const cdoSMTPConnectionTimeout = _

"http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"

Private Const cdoSMTPServerPort = _

"http://schemas.microsoft.com/cdo/configuration/smtpserverport"

Private Const cdoSendUsingPort = 2

Private Const cdoBasic = 2

Далее, после объявления и инициализации переменных добавим объявление, создание и проверку объекта CDO.Message:


Private oCDOMsg ' Ссылка на объект CDO.Message


On Error Resume Next

Set oCDOMsg = Nothing

Set oCDOMsg = CreateObject("CDO.Message")

CanWork = Not (oCDOMsg Is Nothing)

И в конце скрипта заполним тела процедур, реализующих методы:


sub AddAttachment(FilePath)

' Добавляет вложение к письму

On Error Resume Next

If Not CanWork Then Exit Sub

oCDOMsg.AddAttachment FilePath

end sub


sub Reset()

'Очищает тело письма и удаляет вложения

On Error Resume Next

Body = ""

oCDOMsg.Attachments.DeleteAll ' удаляем все вложения

oCDOMsg.Configuration.Fields.Update

end sub


sub Send()

' Отправляет письмо.

On Error Resume Next

If Not CanWork And Address <> "" Then Exit Sub ' с пустым адресом отправлять не будем

oCDOMsg.From = From

oCDOMsg.To = Address

oCDOMsg.Subject = Subject

oCDOMsg.Textbody = Body


oCDOMsg.Configuration.Fields.Item(cdoSendUsingMethod) = cdoSendUsingPort

oCDOMsg.Configuration.Fields.Item(cdoSMTPConnectionTimeout) = 10

oCDOMsg.Configuration.Fields.Item(cdoSMTPAuthenticate) = cdoBasic

oCDOMsg.Configuration.Fields.Item(cdoSendPassword) = SMTPPassword

oCDOMsg.Configuration.Fields.Item(cdoSendUserName) = SMTPUserName

oCDOMsg.Configuration.Fields.Item(cdoSMTPServer) = SMTPServer

oCDOMsg.Configuration.Fields.Item(cdoSMTPServerPort) = SMTPPort


oCDOMsg.Configuration.Fields.Update

oCDOMsg.Send

end sub

Все, создание WSC завершено!


Регистрация и проверка функционирования WSC

Для регистрации WSC следует открыть Проводник Windows, найти там WSC-файл, и щелкнуть по нему левой кнопкой мыши. В появившемся контекстном меню выбрать пункт "Подключить". Аналогично осуществляется и отключение компоненты.


После регистрации можно написать небольшой скрипт для проверки функционирования объекта. Например, такой (адреса в примере вымышленные, необходимо подставить свои):


set m = CreateObject("V7Backup.Mail")

m.From = "V7Backup@coolcompany.ru"

m.Address = "admin@coolcompany.ru"

m.SMTPServer = "mail.coolcompany.ru"

m.Subject = "Проверка связи"

m.Body = "Привет"

m.Send

m.Reset

m.AddAttachment "C:\MailObj\Send.vbs"

m.Send

Скрипт отправит два письма с темой "Проверка связи". У первого в теле письма будет написано "Привет", а у второго тело будет пустое (сработает метод Reset) но оно будет иметь прикрепленный файл Send.vbs (разумеется он должен существовать по указанному в вызове метода AddAttachment пути).


На этом первоначальное знакомство с технологией Windows Script Components можно считать завершенным. Успехов в ее дальнейшем освоении!


Скачать исходные тексты компоненты MailObj.wsc (3 кб)

Другие курсовые работы и руководства:


http://card.oflameron.ru/ - бесплатные настольные игры. Карточные игры - описание и материалы для скачивания.

http://www.oflameron.ru/ee/ - бесплатные игры на листочке бумаги. Описание и материалы для скачивания

http://unicode.shmeleff.com/ - бесплатная курсовая работа по программированию на Visual Basic

http://gallery.shmeleff.com/ - галерея вязаной одежды для кукол Барби

http://freeweb.shmeleff.com/ - каталог бесплатных шаблонов веб сайтов

http://webpage.shmeleff.com/ - бесплатные готовые веб сайты (с контентом)

http://language.oflameron.com/ - каталог программ для изучения английского языка

http://music.shmeleff.com/ - коллекция каталогов бесплатной музыки в формате MP3

http://webdoc.shmeleff.com/ - коллекция бесплатных курсовых работ

http://gamebuilder.narod.ru – генератор настольных игр

http://builder.oflameron.ru – листинг генератора игр на Visual Basic

http://vbcomponent.narod.ru/ - как из программы на VB вызывать функции редактора Word



Похожие:

А. Л. kochurov@narod ru iconСобытия вайшнавского календаря
Мурманское общество сознания Кришны. Адрес: ул. Фролова д. 16 Тел: (8152) 25-78-58 Интернет: www murman-krishna narod ru e-mail:...
А. Л. kochurov@narod ru iconСобытия вайшнавского календаря
Мурманское общество сознания Кришны. Адрес: ул. Фролова д. 16 Тел: (8152) 25-78-58 Интернет: www murman-krishna narod ru e-mail:...
А. Л. kochurov@narod ru iconДокументы
...
А. Л. kochurov@narod ru iconGogr narod ru

А. Л. kochurov@narod ru iconGogr narod ru

А. Л. kochurov@narod ru iconGogr narod ru

А. Л. kochurov@narod ru iconHttp://savrukhin narod ru

А. Л. kochurov@narod ru iconWww dolgoprudnyj narod ru

А. Л. kochurov@narod ru iconHttp://savrukhin narod ru

А. Л. kochurov@narod ru iconWww economycs narod ru

А. Л. kochurov@narod ru iconHttp://abook narod ru

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы