Если вы пользуетесь пакетом MS Office, то вы, скорее всего, виделись с «Помощником» - забавным персонажем, подсказывающим в неясных случаях и развлекающим своими выходками, скрашивая трудовые будни офисных работников. Бобик, Мурка, Колобок, Учёный и, конечно же, Скрепыш – все они созданы с помощью технологии Microsoft Agent, которая появилась ещё в 1998 году. Другой пример применения этой технологии – собачка-ищейка из диалогового окна поиска в Windows XP. Кстати, знаете ли вы, что это окно можно настроить, выбрав другого персонажа из четырёх возможных, или вообще его отключить и оставить пустую синюю панель.
А сейчас мы рассмотрим, как можно самостоятельно управлять из Terrasoft встроенными в систему «агентами». В состав Windows XP уже входит один персонаж – волшебник Мерлин, с ним мы и будем работать.
Добавим в обработчик какого-нибудь события:
strAgentName = "MERLIN";
strAgentPath = "C:\\Windows\\Msagent\\Chars\\" + strAgentName + ".acs";
var objAgent = System.CreateObject("Agent.Control.2");
objAgent.Connected = true;
objAgent.Characters.Load(strAgentName, strAgentPath);
//Загружаем персонажа
var objMerlin = objAgent.Characters.Character(strAgentName);
//Перемещение в нужную точку экрана
objMerlin.MoveTo(700,300);
//Показываем персонажа
objMerlin.Show();
//Демонстрируем разные действия
objMerlin.Play("GetAttention");
objMerlin.Play("GetAttentionReturn");
//Выводим сообщение
objMerlin.Speak("Hello, Terrasoft!");
//Пауза
System.Sleep (1000);
//Скрываем
var objAction= objMerlin.Hide();
//Ждём до окончания скрытия
while (objMerlin.Visible == true) {
System.Sleep (250);
}
Как видим, под нашим управлением агент Мерлин может перемещаться, появляться и исчезать, говорить (не голосом, а облачком с текстом, как в комиксах) и производить различные действия. К слову, персонажа можно заставить говорить по-настоящему и даже распознавать голос, но для этого нужно установить несколько дополнительных файлов.
Приведём некоторые возможные команды в таблице:
Команда | Действие |
Show() | появиться |
Hide() | прятаться |
Play("Wave") | помахать рукой |
Play("Greet") | поздороваться |
Play("Think") | задумчивость |
Play("DoMagic1"), Play ("DoMagic2") | показывать волшебство |
MoveTo(x, y) | переместиться в точку экрана (x,y) |
Speak(s) | сказать строку s |
Think(s) | подумать строку s |
Play("Processing") | варить зелье |
Play("Reading") | читать книгу |
Play ("Announce") | протрубить |
Play("RestPose") | ожидать новых команд |
Если вас заинтересовала технология MS Agent, больше можно узнать по следующим адресам:
http://www.microsoft.com/MsAgent/
http://www.rsdn.ru/article/?582
http://characters.narod.ru/
http://jaws.tiflocomp.ru/synths/sapi/msagent_vb.php
http://www.compress.ru/article.aspx?id=11154&iid=443
http://www.codeproject.com/Articles/35921/Programming-Microsoft-Agent-in-Windows-Forms
Классная штука, развлекался еще в школе, у нас на проектах у кого то было требование увидеть Merlin'а в Terrasoft ?
"Яворский Алексей" написал:у нас на проектах у кого то было требование увидеть Merlin'а в Terrasoft ?
Пока не было.
А я думаю с помощью данного функционала можно например поздравить женскую часть коллектива с 8 марта. Думаю будет прикольно.
"Зверев Александр" написал:strAgentName2, strAgentPath2
Саша, переименуй переменные, чтоб не валилось.