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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Reproducir sonido en evento MouseMOve, pero que no sea eterno
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Reproducir sonido en evento MouseMOve, pero que no sea eterno  (Leído 2,690 veces)
MandingoPC

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Reproducir sonido en evento MouseMOve, pero que no sea eterno
« en: 18 Diciembre 2011, 00:59 am »

Reproduzco sonido con el iResult = mciExecute al pasar el raton sobre un boton. Obviamente es un sonido muy corto. EL problema es q la más mínima pulsacion q haga sobre el boton, vuelve a sonar. Por ende si sigo desplasando x otros botones se traba y no suena, y luego suea todo junto.

Hay algfuna forma de que cuando ya estoy sobre un elemento, no suene más hasta que lo abandone, y luego suene de nuevo cuando lo paso de nuevo x ese elmento?


En línea

Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: Reproducir sonido en evento MouseMOve, pero que no sea eterno
« Respuesta #1 en: 18 Diciembre 2011, 03:21 am »

Usa banderas, con una variable global tipo boolean

Dim Flag As Boolean

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

if Not Flag then
      Flag = True
      ReproduceSonido ' La funcion para reproducir el sonido
      Flag = False
end if

End Sub

Salu2 !


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Reproducir sonido en evento MouseMOve, pero que no sea eterno
« Respuesta #2 en: 18 Diciembre 2011, 07:27 am »

Si es solo una vez en cada momento que el mouse este en la VENTANA que deseas, es decir:

* Supongamos que tienes 1 Form y dentro tienes un PictureBox, y la situacion deseada seria:
-> Moverse en el form No reproducir sonido.
-> Moverse sobre el PictureBox solo reproducir 1 sola vez, sin importar cuantas veces se mueva el mouse...

(*Recomiendo por que no se usa demasiado el procesador):
***Si es esto lo que deseas, nesesitaras hacer un HOOK al mouse a nivel Theard Local...

(-No recomendado, ya que de esta manera se usa demasiado el procesador):
***Tambien puedes implementar el procedimiento con un Timer... algo asi:

Aquí te dejo mas o menos el codigo (Si tiene alguna falla es por que lo hice aqui en el foro):

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Type POINTAPI
  5.    x                                       As Long
  6.    y                                       As Long
  7. End Type
  8.  
  9. Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
  10. Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  11.  
  12. Private hWinLastMouseMove As Long
  13. Private hWinActivateSound As Long
  14.  
  15. Private Sub Form_Load()
  16.    hWinActivateSound = Picture1.hWnd
  17.    Timer1.Interval = 100
  18.    Timer1.Enabled = True
  19. End Sub
  20.  
  21. Private Function getCurrentWindowFromMousePoint() As Long
  22. Dim udtMousePoint As POINTAPI
  23.    GetCursorPos udtMousePoint
  24.    getCurrentWindowFromMousePoint = WindowFromPoint(udtMousePoint.x, udtMousePoint.y)
  25. End Function
  26.  
  27. Private Sub playMySound()
  28.    Beep
  29. End Sub
  30.  
  31. Private Sub Timer1_Timer()
  32. Dim hWinNow As Long
  33.    hWinNow = getCurrentWindowFromMousePoint
  34.    If (hWinLastMouseMove = hWinNow) Then Exit Sub
  35.    hWinLastMouseMove = hWinNow
  36.    If Not (hWinActivateSound = hWinNow) Then Exit Sub
  37.    Call playMySound
  38. End Sub
  39.  
  40.  

Dulces Lunas!¡.
« Última modificación: 18 Diciembre 2011, 07:30 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
MandingoPC

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Reproducir sonido en evento MouseMOve, pero que no sea eterno
« Respuesta #3 en: 18 Diciembre 2011, 07:39 am »

BlackZeroX (Astaroth), Dios es una infernalidad de código, ya que pensaba hcerlo a mas o menos 25 botones omg. Pero funciona, ya veré que hacer para q ande en los 25 botones. NO creo q tenga q copuiar y pegar eso 25 veces, lo anlizaré bien yveré como es, gracias.

Tenient101, el código no funcona. Osea hace lo mismo, no para de reproducir si se sigue moviendo el mouse sobre el objeto. El sonido se reproduce siepre.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Reproducir sonido en evento MouseMOve, pero que no sea eterno
« Respuesta #4 en: 18 Diciembre 2011, 09:28 am »

Pista:
Usa For Next y sustituye la variable hWinActivateSound  por un array... en el timer solo recorrelo... (Solo si son ventanas espesificas), pero de lo contrario si es un CONJUNTO de ventanas de una familia X, por ejemplo, TODOS los CommandButton de un form (fom.controls) realiza un For Each a la clase controls verificando si es un CommandButton (  if control is CommandButton then ...)... en este ultimo no veo la necesidad de crear un array... en todo debes comparar un Handle anterior para que no suenen mas de 1 vez enc ada ocación...

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas con el sonido al reproducir un DVD
Multimedia
dfcp 1 2,234 Último mensaje 15 Febrero 2005, 04:34 am
por Songoku
Ganar foco o reproducir sonido
Programación Visual Basic
academo 0 1,168 Último mensaje 5 Mayo 2006, 21:15 pm
por academo
Reproducir sonido
Programación Visual Basic
Jareth 8 3,286 Último mensaje 14 Enero 2007, 00:19 am
por Jareth
Reproducir sonido C++
Programación C/C++
INS0MNIAC 6 15,036 Último mensaje 3 Diciembre 2012, 13:48 pm
por sjs00002
Ayuda con MouseMove en VB6
Programación Visual Basic
ime 1 1,255 Último mensaje 20 Febrero 2013, 22:42 pm
por Danyfirex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines