iboz
Messages postés3Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention31 décembre 2004
-
30 déc. 2004 à 02:34
cs_salazar
Messages postés241Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 février 2006
-
14 juin 2005 à 20:00
Hello tout le monde,
J'utilise une base de données avec tous mes albums et je voudrais lancer une chanson autrement qu'avec un shell... qui à chaque fois bloque le pc pendant 1 à 2s bien chiant quoi!! ;)
Et j'ai vu dans la doc api de winamp que l'on pouvait envoyer une chanson à winamp en utilisant le code ci-dessous :
Mais big question comment l'adapter à vb?!? et surtout est-ce possible?!?
/*
** Some API calls tend to require that you send data via WM_COPYDATA
** instead of WM_USER. Such as IPC_PLAYFILE:
*/
#define IPC_PLAYFILE 100
/*
** COPYDATASTRUCT cds;
** cds.dwData = IPC_PLAYFILE;
** cds.lpData = (void *) "file.mp3";
** cds.cbData = strlen((char *) cds.lpData)+1; // include space for null char
** SendMessage(hwnd_winamp,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cds);
**
** This will play the file "file.mp3".
**
*/
iboz
Messages postés3Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention31 décembre 2004 31 déc. 2004 à 02:40
Bon je me réponds encore à moi même!!! lol
En fait tout le code ci-dessus fonctionne bien. Je croyais envoyer la chanson et qu'ensuite winamp la jouait mais il ne fait que l'ajouter à la playlist! Et comme la playlist de winamp était caché je voyais rien! ;)
Donc pour moi j'ai juste a faire :
Public Const IPC_DELETE = 101
'Efface la playlist
SendMessage hwndWinamp, WM_WA_IPC, 0, IPC_DELETE
'Envoyer la chanson à winamp
SendMessageStr hwndWinamp, WM_COPYDATA, Me.hwnd, data
'Commencer la lecture
SendMessage hwndWinamp, WM_WA_IPC, 0, IPC_STARTPLAY
Bon mon frontend WinAmp, ZoomPlayer, ProgDVB/WatchTVPro commence à prendre forme ;)
iboz
Messages postés3Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention31 décembre 2004 30 déc. 2004 à 19:14
Bon j'ai bien un début mais...
*******
Module1
*******
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Const WM_COPYDATA = &H4A
Public Const IPC_PLAYFILE = 100
Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As String
End Type
*****
Form1
*****
Private Sub Command1_Click()
Dim hwndWinamp As Long
Dim data As COPYDATASTRUCT
Dim s As String
s = "c:\file.mp3"
data.dwData = IPC_PLAYFILE
data.lpData = s
data.cbData = Len(s) + 1
hwndWinamp = FindWindow("Winamp v1.x", vbNullString)
SendMessage hwndWinamp, WM_COPYDATA, Me.hwnd, data
End Sub
Winamp est bien ouvert, j'ai bien un fichier file.mp3 dans c:\ mais rien ne se passe?!? :(
Pourquoi???
Merci à la personne qui pourra me venir en aide!!! ;)
cs_salazar
Messages postés241Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 février 20062 14 juin 2005 à 20:00
Ta transcription de COPYDATASTRUCT de vc vers vb m'interesse. Es tu certain de la syntaxe suivante, car elle me génère un message d'erreur de type :
SendMessageStr hwndWinamp, WM_COPYDATA, Me.hwnd, data
Je pense qu'il y a une confusion entre el vc et le vb, mais laquelle ??? Peux tu m'aider ?