Видимо все знают симпатичных созданий, которые нам помогают в приложениях Microsoft Office. Веселый Скрепыш, хитрая Мурка, настоящий Маг, изготавливающий какие то зелья - все они давно живут в наших компьютерах, и только ждут, что бы мы их приручили. А что вы думаете об использовании этих ребят в своих приложениях, написанных на VB? Если вы давно об этом мечтали, но не знали с чего начать - то милости прошу в школу дрессировщиков Microsoft-ких зверьков.
Скрепыш, Мерлин и другие... Видимо все знают симпатичных созданий, которые нам помогают в приложениях Microsoft Office. Веселый Скрепыш, хитрая Мурка, настоящий Маг, изготавливающий какие то зелья - все они давно живут в наших компьютерах, и только ждут, что бы мы их приручили. А что вы думаете об использовании этих ребят в своих приложениях, написанных на VB? Если вы давно об этом мечтали, но не знали с чего начать - то милости прошу в школу дрессировщиков Microsoft-ких зверьков. Перед тем как бросаться за работу, конечно, нужно проверить всё ли у вас имеется из необходимых вещей. Включите поиск файлов и найдите на диске C: все файлы с таким расширением - *.acs. Если не нашли на C: поищите на D: а вдруг? Места вероятного обитания следующие( при стандартной установке): "c:Program FilesMicrosoft OfficeOffice10" или "C:WindowsMsagentChars". Если нашли хотя бы один - “clippit.acs” , то считайте, что дело сделано. Это у вас водятся Скрепыши, которых мы и будем сегодня укрощать. Если не нашли - тогда пройдитесь на http://www.microsoft.com/msagent, там есть, или установите Microsoft Office, в конце концов! Запомните полный путь к вашим файлам *.acs, в работе пригодится. Далее, как обычно, открываем стандартный .exe проект. Далее, устанавливаем компонент Проект -> Компоненты -> Microsoft Agent Control 2.0 - поставьте галочку и нажмите Ok. В стане контролов должно наблюдаться пополнение в виде загадочного мужчины в стиле Д.Бонда. Поместите его на форму в любом дальнем углу, чтобы не мешал - при работающим приложении это загадочное лицо невидимо. Займемся интерфейсом. Расположите на форме три кнопки с надписями Остановить, Говорить, Переместить, ComboBox, три текстовых окна. Меню с надписью Выход, или одноименную кнопку - кому что нравится. Пишем процедуру загрузки формы: Private Sub Form_Load() '-- Загружаем Скрепыша, как самого распространенного помощника в Microsoft Office '-- (можно загрузить любого из помощников Microsoft Office) Agent.Characters.Load "CharacterID", "c:Program FilesMicrosoft OfficeOffice10clippit.acs" ' или "C:WindowsMsagentCharsmerlin.acs" и любые другие '-- Для удобства обращения и краткости Set Character = Agent.Characters("CharacterID") '-- Форма с именем помощника Form1.Caption = Character.Name + " - Мой помощник! " '-- Для улучшенного произношения английского, но перестанет говорить по-русски '-- имеет значение только для говорящих персонажей, как Мерлин, но владельцам '-- Win9*/ME нужен еще и голосовой движок, в Win2000/XP он уже есть 'Character.LanguageID = &H409 ' Отключен по вышеизложенной причине '-- Загружаем в список все возможные действия этого персонажа '-- т.к. они могут отличаться для разных помощников Combo1.Clear ' Очищаем от содержимого, если было For Each AnimationName In Character.AnimationNames Combo1.AddItem AnimationName Next '-- Перемещаем персонаж в начальную позицию на экране Character.Left = (Form1.Left + 3000) / Screen.TwipsPerPixelX Character.Top = (Form1.Top + 300) / Screen.TwipsPerPixelY '-- Показываем текущую позицию персонажа в текстовых окнах Text2.Text = CStr(Character.Left) Text3.Text = CStr(Character.Top) '-- Показываем персонаж (наконец то!) Character.Show End Sub Если запустить проект на выполнение то Скрепыш должен появится на экране. Он будет явно скучать, но его уже можно потаскать мышкой по экрану. Нажмите стрелочку на ComboBox - откроется список всех возможных действий персонажа. Пишем процедуру, чтобы их использовать: Private Sub Combo1_Click() '-- Выбираем из списка нужное действие Character.Play Combo1.Text End Sub Очень просто! Вот мы его и расшевелили. Запишите на бумажку все команды, а потом просто в своей программе вставляете код: Character.Play "Команда" и персонаж её выполнит. Напишите код кнопки с надписью Остановить: Character.Stop Это надо иногда делать, т.к. некоторые процессы длятся непрерывно. У нас еще осталось текстовое поле Text1. Сюда мы будем записывать слова, а Скрепыш их произнесет. Пишем код для кнопки Говорить: Private Sub Command2_Click() If Not Text1.Text = "" Then Character.Speak Text1.Text End If Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub Осталось только написать код для перемещения персонажа программно, без помощи мыши. Пишем код для кнопки Переместить: Private Sub Command3_Click() '-- Если надо переместить на другую позицию Character.MoveTo CInt(Text2.Text), CInt(Text3.Text) End Sub В текстовые поля вводим новые координаты, и нажимаем кнопку Переместить. Скрепыш должен передвинуться на новое место. Для выхода из программы пишем следующий код: Set Character = Nothing Agent.Characters.Unload "CharacterID" End Поместите код в меню Выход или кнопку. Вот вкратце и все. Конечно, многие стороны этой темы остались за рамками статьи. Действующий пример содержит сценарий помощи, которая вызывается из меню или клавишей F1. Виталий. Закачать пример" |