Агенты среди нас. Где взять агента и что он может.

впервые опубликовано: где-то в 2001 на сайте Hare.ru

 

Давайте вспомним, почему пользователи повально и так охотно ставили Microsoft Office 97 поверх старого доброго офиса для Windows 95? Всем понравилась забавная «Мурка» (она же «Скрепыш», она же ешё много чего) – «помощник», который больше мешает и отвлекает, чем помогает в работе.

Умные дядьки из Microsoft знают, чем привлечь пользователя, да и денег там на это не жалеют. Толстой тетеньке-бухгалтеру, которая из софта видела только 1С и Lines, тоже понравится «Мурка» и другие персонажи из офисной галереи. Думается, есть шанс купить пользователя 1С с помощью подобной фичи. Эта статья расказывает об использовании технологии Microsoft Agent в среде «1С:Предприятие».

Для управления агентами из V7 не требуются внешние библиотеки, никаких там "AddIn.ЧтоТоТам" или "ЗагрузитьВнешнююКомпонету".

Необходимым является установка самого Microsoft Agent'а, который является COM-сервером и предоставляет интерфесы управления персонажами. Microsoft Agent, возможно, уже есть на компьютерах ваших пользователей (входит в состав WinMe, Win2000, Office2000).

Скачать установочный комплект можно с сайта Microsoft (бесплатно):
http://activex.microsoft.com/activex/controls/agent2/MSagent.exe (392 Кб).

Чтобы наши «агенты« разговаривали, нам потребуется Microsoft Text-To-Speech (он также может быть уже установлен):
http://activex.microsoft.com/activex/controls/sapi/spchapi.exe (825 Kб).

А чтобы говорили по-русски, нужен голосовой движок Lernout&Hauspie TTS3000:
http://activex.microsoft.com/activex/controls/agent2/lhttsrur.exe (2.9 Mб).

То же самое по-английски:
http://activex.microsoft.com/activex/controls/agent2/lhttseng.exe (2.6 Mб) бесплатно.

Не забудьте про самих «помощников». Можно использовать персонажи из поставок различных офисов, однако разговорить Мурку вам не удастся, не умеет она этого – даже на родном английском языке. Microsoft распространяет бесплатно четыре полноценных персонажа:

Есть в Рунете сайт – коллекция агентов: http://allcharacters.chat.ru, там можно найти сотни персонажей, на любой вкус и цвет.

А на сайте Microsoft также бесплатно можно взять редактор агентов, и с его помощью создавать своих персонажей: http://agent.microsoft.com/agent2/sdk/ace.exe (1 Mб). К сожалению, редактировать уже сущесвующие файлы персонажей нельзя.

Итак, начнем-с. После установки MSAgent'а нам становится доступен доступен ActiveX-компонет Agent.Control.2. Цепляемся к нему через нашу "любимую" функцию:

Агент=СоздатьОбъект("Agent.Control.2");
Агент.Connected=1;

Вторая строчка инициализирует MSAgent server. Теперь загрузим персонаж:

Агент.Characters.Load("merlin","merlin.acs");

Characters – ссылка на объект коллекцию персонажей. Метод Load – загружает персонаж, имеет два параметра: в первом задаем идентификатор персонажа, во втором указываем файл или HTTP-адрес персонажа. Microsoft Agent по умолчанию ищет персонажи в каталоге %WinDir%\MSAgent\Chars,, так что если файл вашего персонажа находится в другом месте, указывайте полный путь.

Теперь прицепимся непосредственно к персонажу:

Персонаж=Агент.Characters("merlin");
Персонаж.Show(0);

"merlin" здесь – заданный идентификатор. Параметр метода Show логического типа и отвечает за вывод анимации при показе (0 – с анимацией, 1 – без оной).

Если у Вас всё получилось, Вы увидите волшебника Мерлина в верхнем левом углу экрана. Верхний левый угол не есть хорошее место для него, давайте заставим его убраться оттуда:

Персонаж.MoveTo(500,100,2000);

Первый параметр метода MoveTo – экранная координата по X в пикселах, второй – по оси Y, третий – время в милисекундах, за которое совершается перемещение. Не загоните персонаж за край экрана, достать его оттуда мышкой не получится. Параметр время полета необязателен, по умолчанию – 1000.

Каждый персонаж содержит свой набор анимаций, которые могут быть проиграны методом Play. Пусть наш волшебник подвигается:

Персонаж.Play("Congratulate");

Параметр метода – строка идентификатор анимации. Как отмечалось выше, каждый персонаж имеет свой набор анимаций, и их идентификаторы тоже могут быть различны. Читайте документацию к вашим персонажам. В примере также есть функция, достающая список доступных анимаций конкретного персонажа (к сожалению, без использования Microsoft Script Control сделать это у меня не получилось).

Еще про пару полезных методов объекта Character. Stop – останавливает анимацию. StopAll – останавливает вообще всё: анимацию, перемешение, речь.

Нет ничего проще заставить персонажа говорить:

Персонаж.Speak("Даёшь операционную систему Один Эс");

Закрыть "помощника" можно методом Hide(<параметр>), параметр этого метода аналогичен параметру метода Show.

На этом пока заканчиваю. Если статья понравится, в дальнейшем планируется рассказать побольше о свойствах и методах Microsoft Agent'а, а также научить помошника делать предупреждения, задавать вопросы пользователю и предлагать пользователю ввод значения – с последующей обработкой этих значений и ответов на вопросы.

А пока рекомендую всем скачать комплект документации по использованию Microsoft Agent: http://www.microsoft.com/agent2/sdk/agentchm.zip.

Приложенные ссылки
Пример работы с агентом
Суперагент в виде БН by SerBabah




Hosted by uCoz