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:
e in un modulocodice: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
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.

Rispondi quotando