PXkod - Программирование и Безопасность в сети...

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PXkod - Программирование и Безопасность в сети... » Статьи по программированию » Использование Ms Agent'a на Новый Год


Использование Ms Agent'a на Новый Год

Сообщений 1 страница 2 из 2

1

Здравствуйте. Скоро новый год! Вы уже придумали как будете поздравлять своих друзей и подруг. Предлагаю вам неплохой способ, как это можно сделать.
Наверное все из вас при работе в MS Office Word видели лазящую по экрану скрепку, топающего робота или колобка. Это есть агент! Вам никогда не хотелось заставить его делать то чего хотите вы? Можно устроить. По умолчанию в Windows XP (да и более ранних версиях) уже установлен один. Зовут его Merlin. Над ним и будем колдовать. Я кодил на VBScript и Visual Basic.
Открываем блокнот, сохраняем с расширением .VBS и начинаем.

Для начала присвоим объекту msagent ссылку на новый контрол:
Set MsAgent=CreateObject("Agent.Control.2")

Потом проверяем готов ли он и активируем
If IsObject(MsAgent) then MsAgent.Connected=true

Далее загружаем персонаж
MsAgent.Characters.Load "merlin"
Если нужен другой персонаж то: MsAgent.Characters.Load "ID персонажа","путь к нему"

И присваиваем объекту MyAgent ссылку на агента
Set MyAgent = MsAgent.Characters ("merlin")

Всё объект готов.

Теперь методом Show показываем его на экране.
MyAgent.show

Далее мы можем переместить его в любую точку экрана и даже за него пределы
MyAgent.MoveTo X,Y (где x и y соответственно координаты точки)

Для "показа" речи у агента есть метод Speak "текст"
MyAgent.Speak "Happy New Year"

Имитация думанья – Think "текст"
MyAgent.Think "я думаю"

Чтобы выполнить какую-нибудь анимацию – метод Play "имя_анимации"
MyAgent.Play "Wave"

У агента имеется коллекция анимаций AnimationNames, чтобы узнать все поддерживаемые данным агентом анимации вбиваем такой код:
For each anim in MyAgent.AnimationNames
Stroka=Stroka & anim & vbCRLF
Next
Msgbox Stroka

Чтобы спрятать агента – метод Hide

Все действия агента выполняются асинхронно, наша прога передаёт параметр контролу и продолжает выполняться дальше. Так вот, чтобы агент не выпаливал всё залпом придумано такое:
Set ValReturn= MyAgent.play ”"Process"
Do while ValReturn.status > 0
Loop
В данном случае ValReturn.Status содержит состояние, как только < 0,то анимация закончена. Если необходимо досрочно закончить анимацию: MyAgent.Stop
Для паузы между действиями в VBS я делал WScript.Sleep [время], а в VB использовал API функцию Sleep из kernel32.dll.
Ещё агент может воспроизводить то что говорит, но для этого надо устанавливать дополнительные элементы. Вообще он способен разговаривать на 11 языках мира. Чтобы заставить его озвучивать надо ещё скачать с сайта майкрософта Text-to-Speech engines, например для русского языка вот отсюда
http://activex.microsoft.com/activex/co … tsrur.exe.
После установки этого модуля ваш агент заговорит по-русски. Но потом надо указать язык, на котором он должен будет говорить, иначе агент попытается говорить на языке по умолчанию, который не всегда соответствует нужному. Русский значится как &H0419.
MyAgent.LanguageId=&H0419.
Вот пожалуй и всё. Возможно я рассказал не о всех его свойствах и методах, но для того, чтобы послать агента поздравить друга, этого думаю вполне достаточно. А если добавить под его "выход" новогоднюю мелодию, то вообще круто будет!
Дополнительных агентов можно скачать отсюда:
http://www.rohitab.com/freevoice/gallery.html


hejhog
hackzona.ru

0

2

замечание от себя:

вместо Set ValReturn= MyAgent.play ”"Process"
пишем Set ValReturn= MyAgent.play ("Process")

0


Вы здесь » PXkod - Программирование и Безопасность в сети... » Статьи по программированию » Использование Ms Agent'a на Новый Год