Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/09/2009, 21:25
Avatar de seba123neo
seba123neo
 
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 18 años, 2 meses
Puntos: 19
Respuesta: Arrastrar ficheros sobre un control MediaPlayer (VB6)

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 original
  1. Option Explicit
  2.  
  3. Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  4. Public Declare Sub DragAcceptFiles Lib "shell32.dll" (ByVal hWnd As Long, ByVal fAccept As Long)
  5. 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
  6. 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
  7.  
  8. Public Const WM_DROPFILES = &H233
  9. Public Const GWL_WNDPROC = -4
  10. Public lProcOld As Long
  11.  
  12. Public Function Drag_Drop_WindowsMediaPlayer(ByVal hWnd As Long, ByVal Mensaje_Windows As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  13.    Dim n_Archivos As Long
  14.    Dim x As Long
  15.    Dim Archivo As String * 128
  16.    
  17.    If Mensaje_Windows = WM_DROPFILES Then
  18.       n_Archivos = DragQueryFile(wParam, -1, Archivo, 127)
  19.       For x = 1 To n_Archivos
  20.          Call DragQueryFile(wParam, x - 1, Archivo, 127)
  21.          Form1.WindowsMediaPlayer1.URL = Archivo
  22.          Debug.Print Archivo
  23.       Next x
  24.       Exit Function
  25.    End If
  26.    Drag_Drop_WindowsMediaPlayer = CallWindowProc(lProcOld, hWnd, Mensaje_Windows, wParam, lParam)
  27. End Function

en el Form:

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.     Call DragAcceptFiles(hWnd, True)
  5.     lProcOld = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf Drag_Drop_WindowsMediaPlayer)
  6. End Sub
  7.  
  8. Private Sub Form_Unload(Cancel As Integer)
  9.     Call DragAcceptFiles(hWnd, False)
  10.     Call SetWindowLong(hWnd, GWL_WNDPROC, lProcOld)
  11. End Sub

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein