mciExecute

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GrayCat
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.09.2005 (Вт) 10:57
Откуда: Новгород

mciExecute

Сообщение GrayCat » 20.09.2005 (Вт) 11:36

Как узнать, что проигрывание файла закончено при использовании mciExecute play?
Можно ли обойтись без предварительного определения времени звучания файла?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 20.09.2005 (Вт) 15:47

Поиск.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

GrayCat
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.09.2005 (Вт) 10:57
Откуда: Новгород

После поиска

Сообщение GrayCat » 21.09.2005 (Ср) 14:15

Выяснил, что mciExecute есть частный случай функции mciSendString, о которой, в частности, говорится:
Если задан параметр «notify», и при передаче строки в последнем параметре функции mciSendString был указан идентификатор окна для оповещения, после завершения операции проигрывания функция этого окна получит сообщение MM_MCINOTIFY.

Возник вопрос — как получить это сообщение?
Сразу предупреждаю, во всей накопанной информации сведений, как это сделать на VB нет, есть только на С++.
На VB всё сделано через таймеры: через "status" или вначале через "set...time" получается время проигрывания, затем ставится таймер на это значение.
PS. У меня VB6

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

Сообщение alibek » 21.09.2005 (Ср) 14:29

Оконные сообщения ловятся хуками, т.е. надо установить свою оконную процедуру и обрабатывать получаемые сообщения. Искать по словам SetWindowLong или WindowProc.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.09.2005 (Ср) 19:24

alibek, пожалуйста, перестань называть сабклассинг хуками.
Хуки - то, что ставится по SetWindowsHook[Ex].

А то тут уже и GetAsyncKeyState хуками называют, и всё подряд :evil:
Последний раз редактировалось tyomitch 21.09.2005 (Ср) 20:14, всего редактировалось 1 раз.
Изображение

GrayCat
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 20.09.2005 (Вт) 10:57
Откуда: Новгород

Сообщение GrayCat » 21.09.2005 (Ср) 20:12

Всё заработало, всё получилось как надо.
Большое спасибо Алибеку, что указал в каком направлении надо копать.

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

Сообщение alibek » 22.09.2005 (Чт) 15:46

tyomitch писал(а):alibek, пожалуйста, перестань называть сабклассинг хуками.

Дурные привычки плохо лечатся :)
Перестаю :)
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 110

    TopList