Furious załóżmy, że mam już otwarte okno, nie przeszkadza mi to, można później zminimalizować.
Nie wiem czy zrozumiałeś o co chodzi.
Jeśli Twoja aplikacja ma wybrać utwór, to musi wysłać do okna Winampa komunikat wciścięcia klawisza J
, bo ten odpowiada za pokazanie listy wszystkich utworów z możliwością ich filtrowania. Następnie musiałby wysłać tekst do odpowiedniego pola edycyjnego, tak aby wypełnić to pole konkretnym tytułem utworu. Na koniec wysłanie komunikatu wciścięcia klawisza Enter
, bo tak wybiera się zaznaczony utwór. Jak widzisz jest trochę roboty, a do tego dochodzi jeszcze aktywowanie i podbijanie okien odtwarzacza na ekranie i to samo dla okna, które było aktywne tuż przed całym procesem zmiany utworu.
Problem w tym, że w momencie gdy Twój program przełączałby utwór, obecnie aktywne okno w systemie (program w którym akurat coś robiłeś, np. przeglądarka) traciłaby focusa. Jeśli byś w tym czasie grał czy pisał, to komunikaty o wciskanych klawiszach nie leciałyby do okna przeglądarki, a do okna aktywowanego przez Twoje narzędzie, czyli do okna Jump to file
. Wszedłbyś swojemu programowi w paradę, przez co mógłby wybrać zły utwór lub nie wybrać go wcale. Problem byłby także z określeniem kiedy wybrać utwór – w końcu każdy ma inną długość.
Ogólnie to rozwiązanie nie jest jakoś szczególnie trudne, ale wzamian jest wadliwe i może przeszkadzać w normalnym używaniu komputera (już nie mówiąc o wnerwiającym efekcie migania na ekranie okna do wyboru utworu).
Podasz mi jakieś słowa kluczowe czego mam się uczyć, żeby te komunikaty wysyłać do poszczególnych utworów?
Nie do utworów – komunikaty wysyła się do okien. Przy czym mianem okna określa się nie tylko wizualne okienka, ale też wszelkie osadzone kontrolki posiadające uchwyt, np. przyciski, pola edycyjne, listy itd.
Wolę się pobawić nawet jeśli to głupie, przynajmniej mam jakiś cel pisania czegoś, a tak to brak motywacji:)
Wolałbym abyś napisał sobie plugin do tego odtwarzacza, bo w ten sposób miałbyś bezpośredni dostęp do jego funkcjonalności. Tyle że nie pisałem jeszcze takich pluginów, więc niezbyt wiele miałbym tutaj do powiedzenia, a po drugie, w dalszym ciągu nie ma to sensu, bo w zupełności wystarczy Ci własna playlista.
Jeśli jednak mimo wszystko chcesz się pobawić, to musisz poczytać o enumeracji okien i osadzonych komponentów, wysyłaniu komunikatów do okien i imitowaniu wciskania klawiszy z poziomu kodu. W Google znajdziesz mnóstwo przykładów i objaśnień, a także dużo gotowców.