Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35

Циклическое выполнение вызова MciSendString()

13.02.2016, 12:21. Показов 1718. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как зациклить mciSendString()?
Фишка из делфи
Delphi
1
mciSendString("play 1.wav repeat", NULL, 0,0);
не канает
Если у этой функции нет команды зацикливания, то как её можно привязать к таймеру допустим?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2016, 12:21
Ответы с готовыми решениями:

Циклическое выполнение команды
Добрый день, прошу прощения что я так ворвался и прошу помощи. Просто в программировании не знаю вообще ничего... Суть проблемы в...

Циклическое выполнение операций с папками
Имеется батник, который просматривает все папки в определенном каталоге и делает и копирует в каждую папку файлы с заменой из другого...

Циклическое выполнение определённого кода через каждые 30 секунд и выход из этого цикла в назначенное время
Всем привет! Ребят хелп плиз. есть вот такая штука: Требуется что бы скрипт выполнялся каждые 30 секунд, при этом выходом из цикла...

10
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
13.02.2016, 12:53
Цитата Сообщение от JustDaemon Посмотреть сообщение
Фишка из делфи
При чем тут Дельфи? Это WinAPI-шная фишка, и она "канает" при использовании любого языка программирования.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.02.2016, 13:26
Лучший ответ Сообщение было отмечено JustDaemon как решение

Решение

Цитата Сообщение от JustDaemon Посмотреть сообщение
Как зациклить mciSendString()?
У меня в таком виде
C++
1
2
   HWND MCIHwnd=MCIWndCreate(Application->Handle,HInstance,NULL,"test.mp3");
   MCIWndSendString(MCIHwnd,"Play repeat");
гудит, пока не остановишь... .
2
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
13.02.2016, 15:37  [ТС]
volvo, увидел сейчас ваш ответ в теме с такой же проблемой как у меня Ошибка "указанный параметр команды не распознан драйвером" (mciSendString)
То есть у меня тоже ошибка "указанный параметр команды не распознан драйвером", но вроде как пробелов нет, делаю как подсказал nick42,
C++
1
2
HWND MCIHwnd=MCIWndCreate(Application->Handle,HInstance,NULL,"1.wav");
        MCIWndSendString(MCIHwnd,"Play repeat");
не могли бы вы подсказать в чём проблема?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.02.2016, 15:54
Цитата Сообщение от JustDaemon Посмотреть сообщение
указанный параметр команды не распознан драйвером
Если расширение сменить на mp3, то "скушает". А в чем проблема - только гадать остаётся (или святцы читать).
1
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
13.02.2016, 23:05  [ТС]
nick42, Спасибо большое! Очень выручили!
А как остановить этот повтор?
Попробовал как думал логически
C++
1
2
HWND MCIHwnd=MCIWndCreate(Application->Handle,HInstance,NULL,"1.mp3");
        MCIWndSendString(MCIHwnd,"Stop repeat");}
но явно не то
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.02.2016, 01:26
Ну, если MCIHwnd сделать общей (или вынести в секцию private формы), то остановить воспроизведение можно по другой кнопке: if(MCIHwnd) MCIWndStop(MCIHwnd);. Вообще-то я это всё интуитивно; просматривая подключаемый файл vfw.h.
0
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
14.02.2016, 15:12  [ТС]
Извиняюсь за наверное глупый вопрос, но как её сделать общей?...не совсем понял что вы имели ввиду.
Если вы имели ввиду как глобальную, то какой это тип?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.02.2016, 15:23
Лучший ответ Сообщение было отмечено JustDaemon как решение

Решение

Ну да. Глобальная - это и есть общая. В заголовочном файле это так__
C++
1
2
private:    // User declarations
        HWND  MCIHwnd;
Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
} 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if(!MCIHwnd) MCIHwnd = MCIWndCreate(Application->Handle,HInstance,NULL,"test.mp3");
    MCIWndSendString(MCIHwnd,"Play repeat");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    if(MCIHwnd) MCIWndStop(MCIHwnd);
}
//---------------------------------------------------------------------------
1
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 35
17.02.2016, 00:10  [ТС]
nick42, спасибо большое! Вы очень помогли. По сути я реализовал всё что хотел, но вот хотел узнать, ваш фрагмент кода ставит аудио на паузу, а можно как то именно остановить?
Это не столь обязательно, но всё таки
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
17.02.2016, 00:59
..Наверное достаточно будет созданный MCIHwnd закрыть ( MCIWndClose(hwnd) ). Есть еще MCIWndDestroy(hwnd), MCIWndEject(hwnd), - пробуйте, что больше подходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2016, 00:59
Помогаю со студенческими работами здесь

Выполнение кода после вызова ShellExecute
в обработчике события buttonclick написан код который: сперва shellexecute запускает консольное приложение rar.exe (архивирует файл), ...

Как запретить выполнение функции до её вызова в main?
Подскажите: как запретить выполнение функции vvod до её вызова в main? #include <iostream> #include <string> using namespace...

Как запустить выполнение слайдера в модальном окне только после вызова окна?
Всем привет! Имеется скрипт слайдера, который выполняется внутри модального окна. Но проблема в том, что слайдер начинает листать блоки...

После вызова печати, я хочу попасть на ту форму что вызывала, и на то поле где была до вызова
Например я в форме на каком-то поле Вызываю с формы отчет, потом закрываю отчет, и моя форма видна, но не активна, на ней нет фокуса....

нужно чтобы функция располагалась до ее вызова, после ее вызова и в другом файле. Как это сделать?
#include <iostream> #include <conio.h> using namespace std; int n, *c; void fun(int a, int b) { for (int i = 0; i <...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru