Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/37: Рейтинг темы: голосов - 37, средняя оценка - 4.62
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431

Управление Windows Media Player

03.06.2012, 16:01. Показов 7756. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как нажать кнопку Play??
Нашел код
Но он на делфи:
C++
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var
h:hwnd;
begin
h:=findwindow('WMPlayerApp',nil);
//sendmessage(h,wm_command,$4979,0);//Стоп
//sendmessage(h,wm_command,$4978,0);//Play/pause
//sendmessage(h,wm_command,$497B,0);//Следующая песня
//sendmessage(h,wm_command,$497A,0);//Предыдущая
//sendmessage(h,wm_command,$497D,0);//Промотать вперед
end;
Пробовал так:
C++
1
2
3
HWND wnd;
 wnd = FindWindow(NULL, "Проигрыватель Windows Media");//получаем хендл главного окна
 SendMessage(wnd,WM_COMMAND,$4978,0);
Выдает ошибку [C++ Error] FormRCM.cpp(172): E2206 Illegal character '$' (0x24)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2012, 16:01
Ответы с готовыми решениями:

Управление компонентом Windows Media Player
Доброго времени суток. Подскажите команды по управлению WMP в С++ Builder. Тоесть не удаленно а я сам WMP кинул на форму . Создала...

Удаленное управление Windows Media Player
Доброго времени суток!!! Помогите исправить программу, она управляет Winamp`ом, а вот что надо исправить чтоб управляла Windows Media...

Windows Media Player в Builder 'е
Доброго времени суток! Я хочу чтобы при нажатии на кнопку у меня открывался WMP. Подскажите как это сделать? заранее благодарен

32
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.06.2012, 16:37
0х4978
0
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
03.06.2012, 16:39  [ТС]
Ошибку исправил нужно было вот так
C++
1
2
3
HWND wnd;
 wnd = FindWindow(NULL, "Проигрыватель Windows Media");//получаем хендл главного окна
 SendMessage(wnd,WM_COMMAND,0x4978,0);
Только сейчас другая проблема: Это работает если хоть один раз была нажата эта кнопка. Если например запустить плеер и нажать кнопку в своей программе то не чего не произойдет. А если после того как запустил хоть раз нажал кнопку на самом проигрывателе то всё работает! Как сделать чтобы я мог запустить плеер и нажать кнопку играть программно?
Както так но не играет музыка:
C++
1
2
3
4
5
AnsiString Za =  Disk+"\\Program Files\\Windows Media Player\\wmplayer.exe";
   ShellExecute(NULL,NULL,Za.c_str(),NULL,NULL,SW_RESTORE); 
HWND wnd;
 wnd =FindWindowA("WMPlayerApp",NULL);//получаем хендл главного окна
 SendMessage(wnd,WM_COMMAND,0x4978,0);
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.06.2012, 17:32
Кнопка тоже окно так что ей надо посылать сообщение, а не проигрывателю...
0
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
03.06.2012, 20:42  [ТС]
И как это сделать? Можно пример.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
03.06.2012, 21:03
Только сейчас другая проблема: Это работает если хоть один раз была нажата эта кнопка. Если например запустить плеер и нажать кнопку в своей программе то не чего не произойдет.
...чушь, все работает без предварительного нажатия на Play/Pause при первом запуске wmplayer. Код выше использовал неоднократно:
Delphi
1
2
3
4
var h: hwnd;
begin
h:= findwindow('WMPlayerApp',nil);
sendmessage(h,wm_command, $4978, 0); //Play/pause
E2206 Illegal character '$' (0x24)
...
wnd = FindWindow(NULL, "Проигрыватель Windows Media");
...
Ошибку исправил нужно было вот так
1- $ - так записывается в Delphi - HEX
2- искать лучше по классу окна, а не заголовку ...заголовок может быть разным

ShellExecute(NULL,NULL,Za.c_str(),NULL,N ULL,SW_RESTORE);
HWND wnd;
wnd =FindWindowA("WMPlayerApp",NULL);//получаем хендл главного окна
SendMessage(wnd,WM_COMMAND,0x4978,0);
...а кто ждать будет пока приложение запустится, а?
1
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
03.06.2012, 23:01  [ТС]
Если бы это была
Цитата Сообщение от raxp Посмотреть сообщение
чушь,
я бы наверно не писал(. У меня не работает.
А за ожидание спасибо!
C++
1
2
3
4
5
6
AnsiString Za =  "C:\\Program Files\\Windows Media Player\\wmplayer.exe";
   ShellExecute(NULL,NULL,Za.c_str(),NULL,NULL,SW_RESTORE);
HWND wnd;
::Sleep(900);
 wnd =FindWindowA("WMPlayerApp",NULL);//получаем хендл главного окна
 SendMessage(wnd,WM_COMMAND,0x4978,0);
Всё равно не работает(

Добавлено через 7 минут
Может нужно какой нибудь фокус отправить?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.06.2012, 00:04
А может обдумать то что тебе сказали?
1
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
04.06.2012, 13:37  [ТС]
Ребят, чтож такое((( У меня почемуто чтобы это работало нужно предварительно нажать. Как исправить помогите!!

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
А может обдумать то что тебе сказали?
И что я не так сделал? Можно сказать? Зачем вот эти разглагольства? Нафик тогда вообще форум нужен!

0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.06.2012, 13:46
Ищи окно кнопки на проигрывателе и посылайт туда сообщение.
И что я не так сделал? Можно сказать? Зачем вот эти разглагольства? Нафик тогда вообще форум нужен!
Что бы мозгами шевелить вместе, а не в одностороннем порядке.
0
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
04.06.2012, 13:49  [ТС]
Ты про вот это WMPAppHost? Там больше не чего нет( Саму кнопку Spy не определяет
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.06.2012, 14:30
Может, забыть о кнопке, и смотреть сюда:
1.
WindowsMediaPlayer.playState

Undefined
Stopped
Paused
Playing
ScanForward - Avance rapide
ScanReverse - Retour rapide
Buffering
Waiting
MediaEnded
Transitioning - Preparation nouvelle sequence
ReadyReconnecting
2.
WindowsMediaPlayer1.Controls.Play
WindowsMediaPlayer.Controls.Next
WindowsMediaPlayer.Controls.Previous
WindowsMediaPlayer.Controls.Pause
WindowsMediaPlayer.Controls.Stop
0
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
04.06.2012, 15:06  [ТС]
Честно говоря мне новечку(самоучке) не понятно что это. Неужели не кто не может помочь?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.06.2012, 15:16
Надо для начала файл выбрать а потом только
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#define WMP_PLAY           0x4978
#define WMP_STOP           0x4979
#define WMP_PAUSE          0x4978
#define WMP_LAST           0x497A
#define WMP_NEXT           0x497B
#define WMP_VOLU           0x497F
#define WMP_VOLD           0x4980
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWND hp;
 
hp =FindWindowA("WMPlayerApp",NULL);//получаем хендл главного окна
if(!hp){ShowMessage("Не найден плейер");return;}
 
SendMessage(hp, WM_COMMAND, WMP_PLAY , NULL );
}
//---------------------------------------------------------------------------
1
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
04.06.2012, 15:21  [ТС]
Спасибо! Только вот это не работает(( .. Запускаю плеер с помощью "рук" и нажимаю кнопку в своей программе но не чего не происходит( Винду только что переустановил всё равно не пашет(..
А если я "руками" хоть раз нажму то потом и программа работает..
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.06.2012, 15:29
А если я "руками" хоть раз нажму то потом и программа работает.
Я же говорю
Надо для начала файл выбрать
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.06.2012, 15:42
весь набор

Добавлено через 2 минуты
и не ваша ли это кнопка:
IDD_DIALOG equ 1000
IDC_PLAY equ 1001
IDC_PAUSE equ 1002
IDC_STOP equ 1003
IDC_BACK equ 1004
IDC_NEXT equ 1005
по ходу:
windows mediaplayer small sdk
WMP_PLAY equ 18808; play
WMP_PAUSE equ 18808; pause
WMP_STOP equ 18809; stop
WMP_BACK equ 18810; previous
WMP_NEXT equ 18811; next
WMP_FAST_FORWARD equ 18813; fast forward
WMP_VOLUME_UP equ 18815; volume up
WMP_VOLUME_DOWN equ 18816; volume down
WMP_VOLUME_MUTE equ 18817; mute
WMP_SHUFFEL equ 18842; shuffle toggle On/Off
WMP_REPEAT equ 18843; repeat toggle On/Off
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.06.2012, 15:42
Точне наверное не фал выьрать а список...
0
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
04.06.2012, 18:33  [ТС]
Avazart, LK, Ну и как в итоге сделать? Мысли есть?
Цитата Сообщение от Avazart Посмотреть сообщение
Надо для начала файл выбрать
Всмысле файл? Сам км плеер? Так яж его руками запускаю...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.06.2012, 19:15
По умолчанию плэйлист пуст.
Можно жать на кнопки кнопки что бы нго сменить.
Но я не понимаю одного почему сразу не запускать произрыатель с файлом музыки?
Миниатюры
Управление Windows Media Player  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2012, 19:15
Помогаю со студенческими работами здесь

как создать видео формат любой чтобы мог прочитать обычный плеер как Windows Media Player
Создал программу, с камеры делает фотки вот проблема в сохранение каждую фотку сохранять о дельно очень много и не удобно как из...

Media Player
Создаю простенький Media Player. Отшлифовал код до 2 ошибок:) Ошибки: Unit1.cpp(16): E2285 Could not find a match for...

Пропал звук в видео Media Player
Здравствуйте, все было нормально, звук работал пока я не использовал функцию waveOutSetVolume(0, MAKELONG(TrackBar1->Position,...

Снимок кадра с видео потока Media Player
Здравствуйте, учусь работать с видео, уже сделано: просмотр, регулировка громкости, прокрутка скоро будет, но снимок экрана не получается,...

Фильтр для Media Player Classic - Home Cinema
Привет всем. Может кто нибудь помочь сделать фильтр для Media Player Classic - Home Cinema? Сразу скажу, что это эксперимент моего друга,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[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-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru