Scusa xe ma interessa anche me
codice:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim m_nomeCortoDos As String
Private Sub set_tempo(NewValue)
Dim ret As Long
ret = mciSendString("set MIDI tempo " & NewValue, 0, 0, 0)'imposta il tempo di metronomo del sequencer midi
End Sub
Private Sub play()
ret = mciSendString("OPEN " & m_nomeCortoDos & " ALIAS MIDI", ByVal 0&, ByVal 0&, ByVal 0&)
ret = mciSendString("PLAY MIDI FROM 0 TO 1000", ByVal 0&, ByVal 0&, ByVal 0&)
'ret = mciSendString("PLAY MIDI", ByVal 0&, ByVal 0&, ByVal 0&)
End Sub
Private Sub Command1_Click()
Dim buffer As String
buffer = Space(255)
cd1.ShowOpen 'non metto filtri ma .... aprire un file midi...
file_midi = cd1.FileName
ret = GetShortPathName(file_midi, buffer, 255)'devo usare questa perche se passo alla mci una stringa con degli spazi non carica il file
m_nomeCortoDos = Left(buffer, ret)
play
'Sleep 110 'occhio a questa istruzione che pare na boiata ma.....
set_tempo 300
End Sub
Private Sub Command2_Click()
set_tempo 300
End Sub
Private Sub Form_Unload(Cancel As Integer)
ret = mciSendString("CLOSE MIDI", ByVal 0&, ByVal 0&, ByVal 0&)
End Sub