Требуется озвучить помощника в Microsoft Office

Программирование на Visual Basic for Applications
Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Требуется озвучить помощника в Microsoft Office

Сообщение Мельник » 27.10.2004 (Ср) 15:05

Уважаемые спецы, поставлена задача дипломного проектирования: Озвучить помощника, то есть всё то, что он говорит. Как озвучить Microsoft Agent я представляю, но мне надо получить в текстовом виде, всё что говорит помощник. Как это сделать я не представляю. Если бы у меня была бы ссылка на объект BALLON, то перед выводом его на экран с помощью небольшого анализа можно было бы получить все данные. Помогите моей проблеме. Заранее огромное спасибо.
P.S. Пишу естественно на VBA, но могу писать на любом языке программирования, главное результат :).

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.10.2004 (Ср) 16:19

Вариант первый. Жестоко подменить assistant на ms agent.
Вариант второй. Assistant.newballoon создавать самому.

А, собственно, помощник что-ли сам говорит в случайное время, и нужно вот это вот всё перехватывать? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 27.10.2004 (Ср) 16:49

То есть как вариант, всю логику Assistant выполнять на ms agent, озвучивая его. Отслеживаем надо ли показывать помощника, если надо, то скрываем его, показываем агента и выводим и озвучиваем ballons в соответствии с выбранными опциями помощника. Все созданные Ballon будут моими. Куча кода, но я буду знать, что озвучивать.
Я правильно понял? Или есть способ попроще?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.10.2004 (Ср) 17:10

Я никогда этим не занимался, просто предположение :)

Интересно, как отследить, следует ли показать помощника? Он же и сам является...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 28.10.2004 (Чт) 8:00

Я ведь тоже только предположил :) Мне б какую нибудь идейку, я б её раскрутил, а так даже и не знаю с какой стороны подобраться.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.10.2004 (Чт) 10:09

Ну вот можно проверить Spy++, к какоу классу окна относится балун помощниковый. Можно его findwindow по таймеру :) Если он окно, конечно...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.10.2004 (Чт) 10:15

не получится :) Как только окно Word/Excel теряет фокус, помощник скрывается :)
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.10.2004 (Чт) 10:17

Честно говоря, я его всегда отключаю, помощника этого :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 28.10.2004 (Чт) 10:51

Я тоже отключал до последнего времени :). Помощник у меня говорит, но только то, что я скажу, а что бы ему сказать, я должен знать, что сделал пользователь. Например он нажал закрыть документ, если были изменения помощник выводит ballon с предложением сохранить файл, да нет отмена. То есть если я буду знать что говорить, проблем не будет. Можно ли переопределить метод ballon.show, то есть сделать бы так, чтобы когда он выполнялся вызывалась бы моя процедура и ей передовалась ссылка или указатель на ballon, метод show которого выполняется. То есть задача сводится к анализу содержания Ballon и его озвучивания. Если нельзя, то существует ли возможность доопределять процедуры загрузки приложения, открытия нового документа, сохранения, нажатия на F1, вызова справки, и всех тех на которые должен реагировать помощник, чтобы самому их обрабатывать. То есть в случае закрытия не сохранённого документа я бы выводил ballon да нет отмена, в случае да сохранял бы, нет не сохранял и отмена, ничего не делал. Но при этом стандартное сообщение бы не показывалось. Может я объясняюсь слишком путанно, но у меня и самого сейчас каша в голове, нет чёткого алгоритма функционирования проекта в целом, только обрывки из которых вся картина не получается. Спасибо что не оставили один на один со скрепкой :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.10.2004 (Чт) 12:34

Хрустальный шар говорит мне, что будет куча гемора с минимально полезным результатом :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 29.10.2004 (Пт) 8:09

Спросите пожалуйста у уважаемого хрустального шара можно ли как-то минимизировать гемор и максимизировать полезный результат? У меня мозги кипят. Надо уже диплом писать, а у меня и клава не валялась :)

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 01.11.2004 (Пн) 11:00

Может у кого нибудь есть хоть какие-то намёки на идею? Как это можно сделать, мне ж нужен толчёк в правильном направление, а дальше я сам раскручусь. ПОМОГИТЕ, ПЛИЗ..... Я понимаю, что уже надоел, но мне больше не к кому обратиться.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.11.2004 (Пн) 11:22

Для начала возьми такую вещь как Spy++. И посмотри, где какие окна, и какие у них классы.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 01.11.2004 (Пн) 15:15

Посмотрел, когда показывается ballon, появляется класс MsoBallon, MsoBallonChild, а там кнопочки Button. Что делать дальше?

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 28.01.2005 (Пт) 17:32

У меня возникла проблемка, надо озвучить полезные советы, а как к ним добраться я не знаю. Подскажите пожалуйста.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.01.2005 (Пт) 17:35

А, проект жив! :o
Для начала, на какой мы стадии? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 28.01.2005 (Пт) 17:58

В общем, я так и не нашёл решения. Написал озвучивание только приветствия, повесил его на Document_New и закрытия документа, повесив на Document_close. Преподу этого показалось мало, теперь думаю на Document_Open повесить озвучивание полезных советов, я их конечно и сам могу наклепать, а потом рендомом из списка выбирать, но хочется использовать те, что выводятся в помощнике.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.01.2005 (Сб) 11:36

Кстати, какой движок ты юзаешь и какую версию офиса?
А то мы как наваяем :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 30.01.2005 (Вс) 17:16

Microsoft Office XP
Microsoft Visual Basic 6.3

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.01.2005 (Вс) 17:24

Эх :)

Речевой движок! :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 31.01.2005 (Пн) 11:37

SAPI 4.0
L&H TTS3000 русский

Это я поставил, чтобы всё говорило.
spchapi.exe
SpchCpl.exe
MSagent.exe
AgtX0419.exe
lhttsrur.exe
lhttseng.exe

А зачем конкретизировать движок. У Агента есть метод Speak(), он и говорит. Задача сводится к тому, чтобы получить доступ к тексту, который надо передать в этот метод.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.01.2005 (Пн) 11:40

Да мало ли, мож у тебя не Агент :)

Хм....
Тёмыч фиксит комп, ему щас ни до кого - хотя он уже нарыл структуру балуна...
Ну ладно, энумератор, в конце концов, напишем и сами...
Или подождать его? :roll: Мы, программеры, ленивые...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 31.01.2005 (Пн) 11:59

А что такое энумератор?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.01.2005 (Пн) 12:00

Это великая и ужасная процедура, которой глубоко пофигу, кто, где и какие прячет окна от озвучивания...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 31.01.2005 (Пн) 12:03

Хочу, хочу, хочу...

Мельник
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 27.10.2004 (Ср) 14:08

Сообщение Мельник » 31.01.2005 (Пн) 14:16

А долго Тёмыч будет фиксить комп?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron