Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Pascal: Kontrolloi WinAmpia Delphillä

arcatan [06.05.2002 10:15:13]

#

Oletko aina halunnut tehdä ohjelman jonka avulla voit kontrolloida WinAmpia? En minä ainakaan mutta tässä kuitenkin ohjeita.

WinAmpille voit viestiä WinAPI:n kautta lähettämällä viestejä jotka ovat tyyppiä WM_COMMAND, WM_USER tai WM_COPYSTRUCT. Viimeksi mainittua en nyt käsittele.

Ensin on löydettävä WinAmpin hwnd. Se käyt seuraavasti:

var hwndWinAmp: THandle;
hwndWinamp := FindWindow('Winamp v1.x', nil);

Tuosta on syytä huomata että kaikki WinAmpin versiot 1.x ja 2.x käyttävät otsikkoa 'Winamp v1.x' :)

Seuraavaksi täytyy lähettää se mainittu viesti. Viestejä pystyy lähettämään komennolla SendMessage.

WM_COMMAND-viesteillä voi kontrolloida yksinkertaisia asioita kuten simuloida napin painallusta. Komento on WM_COMMAND :n yhteydessä seuraavanlainen:

SendMessage(hwndWinamp, WM_COMMAND, viestinumero, 0);

Viestinumero kertoo mitä halutaan tehdä. Jos haluat laittaa WinAmpin soimaan, numero on 40045. Listauksessa 3 lisää numeroita.

WM_USER-viesteillä voi tehdä monimutkaisempia asioita ja saada palautusarvon. WM_USER viesteissä komento on tämän tyyppinen:

var palautusarvo: Integer;
palautusarvo := SendMessage(hwndWinamp, WM_USER, data, viestinumero);

WM_USER-viestinumerot ovat ERI numeroita kuin WM_COMMAND. data on arvo jonka avulla voidaan asettaa jotain, esim. haluttu äänenvoimakkuustaso, jonka viestinumero on 122. Viestinumeroita on listauksessa 4

Tämän simuloi winampissa play-napin painamista:

procedure WinAmpStartPlay;
var
  hwndWinamp: THandle;
begin
	hwndWinamp := FindWindow('Winamp v1.x', nil);
        SendMessage(hwndWinamp, WM_COMMAND, 40045, 0);
end;

Tämä asettaa winampissa äänenvoimakkuuden arvoon newVolume (pitää olla väliltä 0-255):

procedure WinAmpSetVolume(newVolume: Integer);
var
	hwndWinamp: THandle;
begin
	hwndWinamp := FindWindow('Winamp v1.x', nil);
        SendMessage(hwndWinamp, WM_USER, newVolume, 122);
end;

WM_COMMAND-viestinumeroita:

40044 Edellinen kappale
40048 Seuraava kappale
40045 Aloita soitto (play)
40046 Pause
40047 Lopeta soitta (stop)
40154 Soittolista alku
40158 Soittolistan loppu
40029 Avaa tiedosto-dialogi
40188 Näytä tietoja tiedostosta
40001 Sammuta WinAmp

WM_USER-viestinumeroita:

100 Aloittaa soiton (play)
101 Tyhjentää soittolistan
102 Aloittaa soittamaan valittua kappaletta
104 Palauttaa soittamisen tilan. 1 = soittaa, 3 = pause, muuta = ei soita
121 Valitsee kappaleen soittolistasta.Numero määritellään data :ssa. 1. kappale = 0, 2.kappale = 1
122 Asettaa äänentasoksi data. Arvo 0-255, 0 täysin hiljainen
124 Palauttaa soittolistan pituuden kappaleissa
125 Palauttaa sijainnin soittolistassa kappaleina
129 Liittää määritellyn (data) tiedoston WinAmpin soittolistaan.

Tässä kaikki, tutki koodeja ja opi. Lisää viestinumeroita ja tietoa asiasta löydät osoitteesta http://www.winamp.com/nsdn

arcatan [12.05.2002 19:00:43]

#

Tämä on myös helppo tehdä VB:llä tai C:llä, mutta en rupea ITSE sitä vääntmään ja kääntämään.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta