elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Algun experto en AxWindowsMediaPlayer, ayuda con pantalla completa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algun experto en AxWindowsMediaPlayer, ayuda con pantalla completa  (Leído 1,826 veces)
CAEL20

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Algun experto en AxWindowsMediaPlayer, ayuda con pantalla completa
« en: 8 Diciembre 2017, 22:43 »

Saludos tengo un proyecto el cual es hacer que se ejecute su pantalla completa, y se desactive el fullScreen con cualquier presion de tecla, si llego a activar la pantalla completa, pero al momento de desactivar la pantalla completa si funciona con algunas teclas, menos con los f1-f2 mas los siguiente y las fechas de direccion, cuando presiono las fechas de direccion deshabilita las teclas que si sirven  he ahi cuando pierdo el control del programa, alguien me puede ayudar para desactivar el fullScreen con todas las teclas del teclado y no me creé esos errores.

   
Código
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        AxWindowsMediaPlayer1.URL = Label1.Text
  3.    End Sub
  4.  
  5.    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
  6.        If e.KeyCode = Keys.F5 Then
  7.            Me.AxWindowsMediaPlayer1.fullScreen = True
  8.        End If
  9.    End Sub
  10.  
  11.  
  12.    Private Sub AxWindowsMediaPlayer1_KeyDownEvent(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_KeyDownEvent) Handles AxWindowsMediaPlayer1.KeyDownEvent
  13.        Me.AxWindowsMediaPlayer1.fullScreen = False
  14.    End Sub


En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.335


Ver Perfil
Re: Algun experto en AxWindowsMediaPlayer, ayuda con pantalla completa
« Respuesta #1 en: 13 Diciembre 2017, 01:39 »

De entrada el tema debías haberlo puesto en el foro de NET.

Aunque estés importando un control Activex de vb6, estás operando en NET.

...de entrada usas (en ambos casos) el evento keydown, claramente sería mejor al menos el KeyUp y aún mejor el Click e inmejorablemente el dobleclick... dejando el clik para play/pausa.

Además para ponerlo en pantalla completa estás usando el propio formulario... si no tienes más objetos que el control WMP, vale pero si no... todavía estás pasándolo a pantalla completa pero solo si pulsas F5, pero no es coherente, sí o sí fuerzas pantalla completa... y para regeresar de ella, debes hacerlo pisando el control... tampoco es coherente...


Yo modificaría el código... de esta manera:
Con doble click, sólo si está en play o pausa, cambia el estado de pantalla completa (al otro estado).
Código
  1. Private Sub Form1_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.DoubleClick, Handles wmp.DoubleClickEvent
  2.    If ((Wmp.playState = wmppsPlaying) or (Wmp.playState = wmppsPaused)) Then
  3.        'if (wmp.fullScreen = false) then
  4.        '    wmp.fullScreen = True
  5.        'else
  6.        '    wmp.fullScreen = false
  7.        'en if  
  8.        wmp.fullScreen = not (wmp.fullScreen) ' más breve y claro, alternamos el estado cuandos e pulsa doble click.
  9.    End If
  10. End Sub

Y dejaría el evento KeyUp para cuestiones específicas... incluso pantalla completa si se pulsa la letra F
Si solo vas a usar Play-pausa, mejor usar el evento click, para alternar entre ambos estados. en esta pieza de código se usa el evento KeyUp...
Código
  1. Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp, Handles wmp.KeyUpEvent
  2.    Select Case e.KeyCode
  3.        Case Keys.Space, keys.Pause    
  4.            If Wmp.playState = wmppsPlaying Then
  5.                Wmp.Controls.pause
  6.            Elseif ((Wmp.playState = wmppsPaused) oralso (Wmp.playState = mppsStopped)Then
  7.                if (wmp.url.length >0) then
  8.                    Wmp.Controls.play
  9.                end if
  10.            End if
  11.        Case Keys.Clear, Keys.Delete
  12.            Wmp.Controls.stop
  13.        case keys.Escape
  14.            Wmp.Controls.stop
  15.            if (wmp.fullScreen = True) then wmp.fullScreen = False
  16.        case keys.F
  17.            wmp.fullScreen = not (wmp.fullScreen)
  18.        ' otros casos a considerar... por ejemplo, manejar volumen, pasar a la siguiente pista en la lista de reproducción (keys.PageDown) o previa (keys.pageUp), etc...
  19.    End select
  20. End sub

- Nota que las constantes las he puesto de memoria, es posible que se llamen de otra manera, especialmente al importarlo a NET... el wrapper, las haya modificado.
- Donde proceda coloca el conveniente try...catch...
- Por último, nota también que yo he preferido abreviar el nombre desde: AxWindowsMediaPlayer1 a wmp, luego si copias cambia donde proceda...


« Última modificación: 13 Diciembre 2017, 01:46 por NEBIRE » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Algun experto en AxWindowsMediaPlayer, ayuda con pantalla completa
« Respuesta #2 en: 13 Diciembre 2017, 19:09 »

al momento de desactivar la pantalla completa si funciona con algunas teclas, menos con los f1-f2 mas los siguiente y las fechas de direccion, cuando presiono las fechas de direccion deshabilita las teclas que si sirven  he ahi cuando pierdo el control del programa, alguien me puede ayudar para desactivar el fullScreen con todas las teclas del teclado y no me creé esos errores.

Es normal, ciertas teclas de control de navegación son "suprimidas" por defecto en el evento KeyDown, puesto que son controladas por el control (y los controles hijo del control) y en teoría no las deberías controlar tú (como las teclas de dirección) ya que en principio no deberías alterar el funcionamiento esperado del control. Sobre esto ya te habló el compañero NEBIRE de forma mucho más detallada.

De todas formas, si realmente quieres hacerlo de esa manera entonces el evento que pareces estar buscando sería AxWindowsMediaPlayer.PreviewKeyDown:

Código
  1. ''' <summary>
  2. ''' Occurs before the <see cref="AxWindowsMediaPlayer.KeyDown"/> event when a key is pressed while focus is on this control.
  3. ''' </summary>
  4. ''' <param name="sender">
  5. ''' The source of the event.
  6. ''' </param>
  7. ''' <param name="e">
  8. ''' The <see cref="PreviewKeyDownEventArgs"/> instance containing the event data.
  9. ''' </param>
  10. Private Sub AxWindowsMediaPlayer1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles AxWindowsMediaPlayer1.PreviewKeyDown
  11.  
  12.    Dim wmp As AxWindowsMediaPlayer = DirectCast(sender, AxWindowsMediaPlayer)
  13.    If (wmp.fullScreen) Then
  14.        wmp.fullScreen = False
  15.    End If
  16.  
  17. End Sub

Saludos.
« Última modificación: 13 Diciembre 2017, 19:27 por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines