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):
Option Explicit
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private hWinLastMouseMove As Long
Private hWinActivateSound As Long
Private Sub Form_Load()
hWinActivateSound = Picture1.hWnd
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Function getCurrentWindowFromMousePoint() As Long
Dim udtMousePoint As POINTAPI
GetCursorPos udtMousePoint
getCurrentWindowFromMousePoint = WindowFromPoint(udtMousePoint.x, udtMousePoint.y)
End Function
Private Sub playMySound()
Beep
End Sub
Private Sub Timer1_Timer()
Dim hWinNow As Long
hWinNow = getCurrentWindowFromMousePoint
If (hWinLastMouseMove = hWinNow) Then Exit Sub
hWinLastMouseMove = hWinNow
If Not (hWinActivateSound = hWinNow) Then Exit Sub
Call playMySound
End Sub
Dulces Lunas!¡.