Ĺadny brzuch
Chciałem napisać fragment kodu w C++ który by pobrał tytuł odtwarzanej piosenki w odtwarzaczu.
Interesuje mnie, jak to zrobić inaczej niż za pomocą pobrania tytułu okna...
Odtarzacze:
-Foobar2000
-Winamp
-WindowsMediaPlayer
Pobierz SDK tych programów i działaj. Kody od wmp i winamp'a są pisane w cpp i c więc nie będziesz miał problemów :)
Chciałem napisać fragment kodu w C++ który by pobrał tytuł odtwarzanej piosenki w odtwarzaczu.
Interesuje mnie, jak to zrobić inaczej niż za pomocą pobrania tytułu okna...
Odtarzacze:
-Foobar2000
-Winamp
-WindowsMediaPlayer
nie latwiej kilka findwindow? :) albo proponuje zapoznac sie z enumwindows ... :)
No i właśnie o to chodzi!
Zrobiłem pobranie napisu z belki, ale w winampie jest przewijanie tytułu na pasku, a w foo można coś tam podobno zmienić, z wmp nie korzystam ale obsługa musi być :/
Użytkownik BoJeR edytował ten post 20 luty 2006, 22:37
No i właśnie o to chodzi!
Zrobiłem pobranie napisu z belki, ale w winampie jest przewijanie tytułu na pasku, a w foo można coś tam podobno zmienić, z wmp nie korzystam ale obsługa musi być :/
winampa sto lat nie uzywalem, ale wydaje mi sie ze tam tekst jest Winamp - [tytul utworu] wiec nawet jesli sie "przewija" mozesz namierzyc "Winamp", nawet gdyby bylo "zlamane" ..
Co prawda to jest delphi, ale operuje wlasciwie tylko na winapi. Byc moze sie przyda: http://4programmers...._programu_(Api)
(to do winampa)
Użytkownik Einzeinbleth edytował ten post 21 luty 2006, 08:07
Co prawda to jest delphi, ale operuje wlasciwie tylko na winapi. Byc moze sie przyda: http://4programmers...._programu_(Api)
(to do winampa)
Tutaj masz tytułaktualnej piosenki w Winampie:
http://www.planet-so...Id=433&lngWId=7
Oba przejrzałem (pascala nie znam), ale nie znalazłem
zaraz wam podeśle co wychodzi z tego(winamp) po włączeniu przewijania.
A więc tak:
Pobieranie HWND:
//--------------------------------------------------------------------------- // WinAmp.cpp //--------------------------------------------------------------------------- #include <windows.h> extern int playerID; extern char plName[16]; HWND FindPlayer(int wanted) { HWND hwnd; if (wanted == 0 || wanted == 4) { hwnd = FindWindow("Sonique Window Class", NULL); if (hwnd != 0) { playerID = 4; strcpy(plName, "Sonique"); return hwnd; } } if (wanted == 0 || wanted == 3) { hwnd = FindWindow("Studio", NULL); if (hwnd != 0) { playerID = 3; strcpy(plName, "Winamp 3"); return hwnd; } } if (wanted == 0 || wanted == 2) { hwnd = FindWindow("Winamp v1.x", NULL); if (hwnd != 0) { playerID = 2; strcpy(plName, "Winamp 2/5"); return hwnd; } } if (wanted == 0 || wanted == 5) { hwnd = FindWindow("{DA7CD0DE-1602-45e6-89A1-C2CA151E008E}", NULL); if (hwnd != 0) { playerID = 5; strcpy(plName, "Foobar"); return hwnd; } } if (wanted == 0 || wanted == 5) { hwnd = FindWindow("{DA7CD0DE-1602-45e6-89A1-C2CA151E008E}/1", NULL); if (hwnd != 0) { playerID = 5; strcpy(plName, "Foobar beta"); return hwnd; } } playerID = 0; return 0; }
teraz tylko:
//--------------------------------------------------------------------------- // main.cpp //--------------------------------------------------------------------------- using namespace std; int main( int argc, char * argv[] ) { HWND hwnd_player = FindPlayer(0); if (hwnd_winamp == 0) return 1; char text[255]; GetWindowText(hwnd_player,text,255); cout <<plName<<":"<<endl<<text; return 0; }
po kompilacji otrzymuje:
(winamp5 w traju)
Winamp 2/5:
2. 01. Enjoy vs. Strider - Skateboy (Strider Remix) - Winamp
z przewijaniem:
Winamp 2/5:
ider - Skateboy (Strider Remix) - Winamp *** 2. 01. Enjoy vs. Strider - Skateboy (Strider Remix) - Winamp
Co wy na to?
Jakieś inne pomysły?
Użytkownik BoJeR edytował ten post 21 luty 2006, 18:46
A nie możesz napisać plugina do winamp'a (czy czego tam chcesz) i potem z tego pluginu wysylac info do swojej aplikacji ?
Z poziomu programów masz większe możliwości.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Interesuje mnie, jak to zrobić inaczej niż za pomocą pobrania tytułu okna...
Odtarzacze:
-Foobar2000
-Winamp
-WindowsMediaPlayer
Pobierz SDK tych programów i działaj. Kody od wmp i winamp'a są pisane w cpp i c więc nie będziesz miał problemów :)
Chciałem napisać fragment kodu w C++ który by pobrał tytuł odtwarzanej piosenki w odtwarzaczu.
Interesuje mnie, jak to zrobić inaczej niż za pomocą pobrania tytułu okna...
Odtarzacze:
-Foobar2000
-Winamp
-WindowsMediaPlayer

nie latwiej kilka findwindow? :) albo proponuje zapoznac sie z enumwindows ... :)

No i właśnie o to chodzi!
Zrobiłem pobranie napisu z belki, ale w winampie jest przewijanie tytułu na pasku, a w foo można coś tam podobno zmienić, z wmp nie korzystam ale obsługa musi być :/
Użytkownik BoJeR edytował ten post 20 luty 2006, 22:37
No i właśnie o to chodzi!
Zrobiłem pobranie napisu z belki, ale w winampie jest przewijanie tytułu na pasku, a w foo można coś tam podobno zmienić, z wmp nie korzystam ale obsługa musi być :/

winampa sto lat nie uzywalem, ale wydaje mi sie ze tam tekst jest Winamp - [tytul utworu] wiec nawet jesli sie "przewija" mozesz namierzyc "Winamp", nawet gdyby bylo "zlamane" ..

Co prawda to jest delphi, ale operuje wlasciwie tylko na winapi. Byc moze sie przyda: http://4programmers...._programu_(Api)
(to do winampa)
Użytkownik Einzeinbleth edytował ten post 21 luty 2006, 08:07
Co prawda to jest delphi, ale operuje wlasciwie tylko na winapi. Byc moze sie przyda: http://4programmers...._programu_(Api)
(to do winampa)

Tutaj masz tytułaktualnej piosenki w Winampie:
http://www.planet-so...Id=433&lngWId=7
Oba przejrzałem (pascala nie znam), ale nie znalazłem
zaraz wam podeśle co wychodzi z tego(winamp) po włączeniu przewijania.
A więc tak:
Pobieranie HWND:
//--------------------------------------------------------------------------- // WinAmp.cpp //--------------------------------------------------------------------------- #include <windows.h> extern int playerID; extern char plName[16]; HWND FindPlayer(int wanted) { HWND hwnd; if (wanted == 0 || wanted == 4) { hwnd = FindWindow("Sonique Window Class", NULL); if (hwnd != 0) { playerID = 4; strcpy(plName, "Sonique"); return hwnd; } } if (wanted == 0 || wanted == 3) { hwnd = FindWindow("Studio", NULL); if (hwnd != 0) { playerID = 3; strcpy(plName, "Winamp 3"); return hwnd; } } if (wanted == 0 || wanted == 2) { hwnd = FindWindow("Winamp v1.x", NULL); if (hwnd != 0) { playerID = 2; strcpy(plName, "Winamp 2/5"); return hwnd; } } if (wanted == 0 || wanted == 5) { hwnd = FindWindow("{DA7CD0DE-1602-45e6-89A1-C2CA151E008E}", NULL); if (hwnd != 0) { playerID = 5; strcpy(plName, "Foobar"); return hwnd; } } if (wanted == 0 || wanted == 5) { hwnd = FindWindow("{DA7CD0DE-1602-45e6-89A1-C2CA151E008E}/1", NULL); if (hwnd != 0) { playerID = 5; strcpy(plName, "Foobar beta"); return hwnd; } } playerID = 0; return 0; }
teraz tylko:
//--------------------------------------------------------------------------- // main.cpp //--------------------------------------------------------------------------- using namespace std; int main( int argc, char * argv[] ) { HWND hwnd_player = FindPlayer(0); if (hwnd_winamp == 0) return 1; char text[255]; GetWindowText(hwnd_player,text,255); cout <<plName<<":"<<endl<<text; return 0; }
po kompilacji otrzymuje:
(winamp5 w traju)
Winamp 2/5:
2. 01. Enjoy vs. Strider - Skateboy (Strider Remix) - Winamp
z przewijaniem:
Winamp 2/5:
ider - Skateboy (Strider Remix) - Winamp *** 2. 01. Enjoy vs. Strider - Skateboy (Strider Remix) - Winamp
Co wy na to?
Jakieś inne pomysły?
Użytkownik BoJeR edytował ten post 21 luty 2006, 18:46
A nie możesz napisać plugina do winamp'a (czy czego tam chcesz) i potem z tego pluginu wysylac info do swojej aplikacji ?
Z poziomu programów masz większe możliwości.