salve a tutti,
sto cercando di creare un programmino che, premendo i tasti della tastiera emetta un bip di una determinata frequenza per ogno tasto: Es. Q = Do, W = Re, ecc.
Però mi si presenta un problema:
per emettere il bip sto usando
Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Integer, ByVal dwDuration As Integer) As Boolean
e uso la durata di 100 ms in modo che tenedo premuto il tasto si ottengano molti bip di 100 ms che sembrano un suono unico. Il problema è che se tengo premuto il tasto si genera un bip seguito da una pausa e poi il bip continuato che avrei voluto che si sentisse.
ecco il codice che ho usato per i primi tre tasti do do# re:
codice:
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Dim tasto As String
Dim dom As Double = 110
Dim dis As Double
Dim pot As Double
tasto = Chr(e.KeyValue)
Select Case tasto
Case "Q"
Beep(110, 100)
Case "2"
dis = 1
pot = dis / 12
Beep(Math.Pow(2, pot) * 110, 100)
Case "W"
dis = 2
pot = dis / 12
Beep(Math.Pow(2, pot) * 110, 100)
End Select
End Sub
e in un modulo
codice:
Module Module1
Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Integer, ByVal dwDuration As Integer) As Boolean
End Module
Ringrazio in anticipo per qualsiasi risposta.