Avatar billede Slettet bruger
22. maj 1999 - 19:40 Der er 10 kommentarer og
1 løsning

API kommando til WinAmp

Hejsa...
Det er efter mange forsøg med API kommandoen SendMessage() endnu ikke
lykkedes mig, at få tiden returneret. Jeg er gået frem efter flere
eksempler, der skulle virke på WinAmp. Jeg kan godt få kommandoer til at
virke, men når jeg forsøget at få tiden returneret, så får jeg blot værdien
1, lige meget hvad jeg gør...
Er der nogen, der kan sige mig hvorfor?

Thomas
Avatar billede 127144146281 Nybegynder
22. maj 1999 - 22:06 #1
Jeg mener at have læst i en readme fil der følger med Winamp (meget gammel version) at man ikke skal bruge SendMessage() men en anden udgave af den, prøver lige at finde den.
Avatar billede 127144146281 Nybegynder
23. maj 1999 - 15:28 #2
Jeg mener det var PostMessage, leder stadig, da jeg mener at have lavet et project før for at se om det virkelig kunne lade sig gøre, og det kunne
Avatar billede Slettet bruger
23. maj 1999 - 18:45 #3
Lyder godt, kan du maile mig et eksempel?
Avatar billede 127144146281 Nybegynder
23. maj 1999 - 20:59 #4
Jeg tror den blev slettet da jeg installerede WinNT da jeg ikke lige kan finde den, men jeg kan da prøve at lave den igen
Avatar billede Slettet bruger
23. maj 1999 - 23:13 #5
Det ville bare være kanont, hvis du gad.
Avatar billede 127144146281 Nybegynder
24. maj 1999 - 21:32 #6
Endelig fundet det jeg manglede (fre fronyen.txt) i ver. 1.8 (ikke til at finde)

Så nu går jeg igang, der stod bland andet:


/* A little about Visual Basic
In VB, the SendMessage function does not work, you must use the SendMessageTimeout.
Otherwise, VB will not wait for WinAmp to return a value. Here's an example...
    Dim Success as Long
    Dim ReturnValue As Long
    Success = SendMessageTimeout(WinampHandle, WM_USER, 0, 104, SMTO_BLOCK, 1000, ReturnValue)
    MsgBox (ReturnValue)
If you are sending commands, use this format;
    Dim Success as Long
    Success = PostMessage(WinampHandle, WM_COMMAND, 40022, 0)
// -VB notes by Amal G.
*/
Avatar billede 127144146281 Nybegynder
25. maj 1999 - 01:18 #7
Hvis du sender din e-mail add. så kan jeg sende dig hele projectet (med alle de features man kan bruge fra VB til at styre Winamp med) når jeg engang biver færdig.
Avatar billede 127144146281 Nybegynder
25. maj 1999 - 01:22 #8
Her er det med tiden:


'----------------------------------------
'    Module1.bas
'----------------------------------------
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" _
(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, _
ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long

Public Const SMTO_BLOCK = &H1

Public Const WM_USER = &H400
Public Const WM_WA_IPC = WM_USER
Public Const IPC_GETOUTPUTTIME = 105

'----------------------------------------
'    Form1.frm
'----------------------------------------
Dim hwnd_winamp as Long


Private Sub Form_Load()

hwnd_winamp = FindWindow("Winamp v1.x", vbNullString)

End Sub



Private Sub Command1_Click()

    Dim msg As String
    Dim Success As Long
    Dim ReturnValue As Long
   
    Success = SendMessageTimeout(hwnd_winamp, WM_WA_IPC, 0, IPC_GETOUTPUTTIME, SMTO_BLOCK, 1000, ReturnValue)
    If Not Success = 0 Then
    msg = "Current position in the song: " & ReturnValue & " Sec" & vbNewLine
    ReturnValue = vbNull
    Else
    MsgBox "Error"
    End If
   
    Success = SendMessageTimeout(hwnd_winamp, WM_WA_IPC, 1, IPC_GETOUTPUTTIME, SMTO_BLOCK, 1000, ReturnValue)
    If Not Success = 0 Then
    msg = msg & "Length of the song: " & ReturnValue & " Sec"
    ReturnValue = vbNull
    Else
    MsgBox "Error"
    End If
    MsgBox msg
End Sub



Avatar billede Slettet bruger
25. maj 1999 - 17:17 #9
KANONT!!! Det var lige det jeg manglede!!!
Avatar billede 127144146281 Nybegynder
25. maj 1999 - 19:04 #10
Det var så lidt, det er faktiskt meget let at oversætte C++ kode til VB, prøv selv at se i Frontend.txt, der ligger i samme Dir. som Winamp, og det burde være meget nemt at forstå,hvis du bruger ovenstående skabalon, men hvis du kun skal sende "Messages" til Winamp uden at få svar tilbage skal du bruge PostMessage
Avatar billede 127144146281 Nybegynder
26. maj 1999 - 23:00 #11
Sender du ikke lige det program du er ved at lave, så man kan fået smugkig af det, på Visual_Basic@michael-jensen.dk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester