Sterownie Windows Media Playerem z dowolnego programu

kec

Ostatnio czytałem artykuł AndRew o sterowniu WinAmpem z dowolnego programu. Bardzo przydało mi się to w programie który piszę, potrzebowałem jeszcze sterowania Media Playerem. Gdyby nie wakacje i to ,że byłem odcięty od net-u, to pewnie nie zacząłbym własnych "badań". No cóż potrzeba matką wynalazków.
Oto wyniki mojej pracy:

Na początku trzeba WMP zlokalizować, korzystamy więc z FindWindow:

var
WMPhwnd: THandle

WMPhwnd:=FindWindow('WMPlayerApp',nil);

Funkcja zwraca uchwyt do WMP który możemy zastosować w SendMessage:

SendMessage(WMPhwnd,WM_COMMAND,kod,0);

oczywiście kod należy zastąpić jedną z następujących wartości:
32780 - tryb pełny
32781 - tryb kompaktowy
32783 - wł/wył playlisty

32789 - wł/wyłKorektor i ustawienia
32784 - korektor SRS WOW
32785 - korektor graficzny
32786 - ustawienia wideo
32787 - informacje o nośniku
32788 - podpisy
32790 - pokaż/ukryj paski zmiany rozmiaru
32791 - pokaż/ukryj tytuł
32792 - pokaż/ukryj wizualizację
32793 - pokaż/ukryj paski zmiany rozmiaru
32794 - statystyka
32804 - regulatory DVD
32833 - teraz odtwarzane
32834 - kopiuj z dysku CD
32805 - przewodnik multimedialny
32806 - biblioteka multimediów
32807 - tuner radiowy
32835 - kopiuj na
32808 - odtwórz wstrzymaj
32809 - zatrzymaj
32810 - poprzedni
32811 - następny
32815 - głośniej
32816 - ciszej
32817 - wycisz
32825 - opcje
32841 - wybór karnacji
32848 - wyszukiwanie plików multimedialnych

Z tego co wyczytałem w API to wartość WM_COMMAND w funkcji SendMessage powoduje wysłanie do danej aplikacji takiej samej wiadomości jak podczas kliknięcia jakiegoś przycisku. Tak więc ten kod symuluje naciśnięcie jakiegoś przycisku w WMP.

Wszystko było testowane na WMP 7.1 i 8.0.

Gdyby coś to pisać, pytać i poprawiać (ja tu tylko sprzątam) :-)

6 komentarzy

A jak wykryć jaki utwór jest odtwarzany w Windows Media Player?

panowie panowie! kto obsluzy winamp'a 3.0 jest masterem, siedze nad tym juz tydzien i nie moge :(. a jest mi to niezmiernie potrzebne. wiem ze np. od glosnosci jest odpowiedzialny adres "664e78" ale jak go zmienic dzieki delphi? pozdrawiam!!!

Jak można sterować Systemem Syntezy Mowy WP?

A tak w ogóle to skąd tyrzasnąjeś te kody ???

Heh.. miło popatrzeć gdy ktoś bierze ze mnie przykład.. :) pozdrawiam, a arta oceniam na sześć.. (bo przesłanie w sumie to samo, a szata graficzna nie ma przecież znaczenia)

masz smieszne jazdy drajwer :D