Hola, lo que podes hacer es como una playlist con un listbox y asi usas los eventos de Drag de ese control, y ahi sacas facil en pocas lineas de codigo el archivo que estas queriendo reproducir, la otra es hacerlo directamente en el windows media player, la verdad no he visto codigo para hacerlo directo con algun evento o algo, lo he solucionado usando esto, puede ser largo el codigo usando algunas api's de windows, pero otra no vi, y anda bien, si alguno sabe otra bienvenido.
En un Modulo:
Código vb:
Ver originalOption Explicit
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Sub DragAcceptFiles Lib "shell32.dll" (ByVal hWnd As Long, ByVal fAccept As Long)
Private Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const WM_DROPFILES = &H233
Public Const GWL_WNDPROC = -4
Public lProcOld As Long
Public Function Drag_Drop_WindowsMediaPlayer(ByVal hWnd As Long, ByVal Mensaje_Windows As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim n_Archivos As Long
Dim x As Long
Dim Archivo As String * 128
If Mensaje_Windows = WM_DROPFILES Then
n_Archivos = DragQueryFile(wParam, -1, Archivo, 127)
For x = 1 To n_Archivos
Call DragQueryFile(wParam, x - 1, Archivo, 127)
Form1.WindowsMediaPlayer1.URL = Archivo
Debug.Print Archivo
Next x
Exit Function
End If
Drag_Drop_WindowsMediaPlayer = CallWindowProc(lProcOld, hWnd, Mensaje_Windows, wParam, lParam)
End Function
en el Form:
Código vb:
Ver originalOption Explicit
Private Sub Form_Load()
Call DragAcceptFiles(hWnd, True)
lProcOld = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf Drag_Drop_WindowsMediaPlayer)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call DragAcceptFiles(hWnd, False)
Call SetWindowLong(hWnd, GWL_WNDPROC, lProcOld)
End Sub
saludos.