Visual Basic - AYUDA URGENTE CON MEDIA PLAYER ! ! ! !

Life is soft - evento anual de software empresarial
 
Vista:

AYUDA URGENTE CON MEDIA PLAYER ! ! ! !

Publicado por Tomas (13 intervenciones) el 22/07/2007 00:24:36
que tal gente del foro ... mi problema es el siguiente:

uso el control de media player para reprodicir videos en pantalla completa (fullscreen). eso anda fantastico.
El problema es que necesito que al presionar alguna tecla se cierre (preferentemente la tecla F6), ya probe con el evento keydown, keyup , key press y no pude hacerlo.

Desde ya muchisisisisimas gracias por cualquier ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Prueba con HotKeys

Publicado por Zoto (3 intervenciones) el 22/07/2007 01:38:48
Puedes probar registrando una tecla para tu aplicación (HotKey) de manera que cuando se pulse tu aplicación responda adecuadamente.
Veamos, aquí te proporciono el código fuente necesario.
Crea un nuevo módulo llamado modHotKey.bas.
Pega lo siguiente:

'CÓDIGO FUENTE modHotKey.BAS -------------------------------------------------

'--------------------
'Registrar HotKeys
'--------------------

Public Const WH_KEYBOARD = 2
Public Const VK_F6 = 117
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long

Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'Si idHook es menor que 0, continuar
If idHook < 0 Then
'Llamar al siguiente Hook
KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
Else
If (GetKeyState(VK_F6) And &HF0000000) Then


' --------- Código para cerrar el reproductor --------------
MsgBox "Reproductor cerrado"

End If
'Llamar al siguiente Hook
KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
End If
End Function

'CÓDIGO FUENTE modHotKey.BAS -------------------------------------------------

Y ahora, para usarlo, en el formulario principal de la aplicación (o donde necesites usarlo).

'CODIGO FUENTE formulario ------------------------------------------

'En el evento Load registramos el HotKey.

Private Sub Form_Load()
'Registramos el HotKey
hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub

'Y en el QueryUnload lo destruimos:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'Destruimos el HotKey previamente registrado al cerrar el formulario principal (cerrar aplicación)
UnhookWindowsHookEx hHook
End Sub

'CODIGO FUENTE formulario ------------------------------------------

Véase que la tecla a la que responde el HotKey se encuentra en la condición del procedimiento KeyboardProc del módulo añadido:

If (GetKeyState(VK_F6) And &HF0000000) Then

Esto comprueba si la tecla F6 ha sido pulsada.
Si es así, se procede de acuerdo con ello.

Si deseas utilizar combinaciones de teclas, en lugar de una tecla sola, por ejemplo Shift y otra tecla a la vez, deberás utilizar el argumento wParam.
En él se guarda esa segunda tecla.
Por ejemplo, esta sería la condición si quisiéramos responder a SHIFT + E:

Declaramos las constantes de tecla necesarias:

Public Const VK_SHIFT = &H10
Public Const VK_E = 83

Y cambiamos la condición.

If (GetKeyState(VK_SHIFT) And &HF0000000) Then
If wParam = VK_E Then
' ------------ Código necesario --------------
End If
End If

Espero que te sirva.
Hasta otra,

Zoto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prueba con HotKeys

Publicado por Tomas (13 intervenciones) el 22/07/2007 02:06:14
Zoto , el codigo que me pasaste funciona a la perfeccion y me solucionaste el problema totalmente ...

Te agradezco infinitamente por la ayuda. Revise varias formas , pero no conocia esto de las HotKeys ... , es espectacular.

Otra vez mil gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar