G
Guest
The Public declare function for the mciExecute is at the top of the module as
is the other Public declare function which I use for .wav files. The sub
that turns the midi file on and off is titled PlayMidiFile. The last sub is
the one that calls the PlayMidiFile during normal code execution. I have
stepped through the code and it is finding the midi file and is telling it to
execute. The problem is that there is no sound. I have to assume that it
does not execute. There have been several automatic downloads to my system
lately and I have no idea what they might have affected, but this code was
working perfectly until I tried it today. I can play the midi file using the
Windows Media Player, so the midi file is not corrupt.
Does anybody have a clue? It has me snowed.
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, hModule As Long, ByVal dwFlags _
As Long) As Long
Public Declare Function mciExecute Lib "winmm.dll" _
(ByVal lpstrCommand As String) As Long
Sub PlayMidiFile(MidiFileName As String, Play As Boolean) 'Function for
calling midi files
If Dir(MidiFileName) = "" Then Exit Sub ' no file to play
If Play Then
mciExecute "play " & MidiFileName ' start playing
Else
mciExecute "stop " & MidiFileName ' stop playing
End If
End Sub
Sub x()
MidiStr = ""
On Error Resume Next
MidiStr = Dir("c:\windows\media\*.mid")
On Error GoTo 0
If MidiStr <> "" Then
Set fs = Application.FileSearch
With fs
.LookIn = "C:\Windows\Media"
.Filename = "*.mid"
If .Execute > 0 Then
MySnd = .FoundFiles(1)
End If
End With
PlayMidiFile (MySnd), True
End If
End Sub
is the other Public declare function which I use for .wav files. The sub
that turns the midi file on and off is titled PlayMidiFile. The last sub is
the one that calls the PlayMidiFile during normal code execution. I have
stepped through the code and it is finding the midi file and is telling it to
execute. The problem is that there is no sound. I have to assume that it
does not execute. There have been several automatic downloads to my system
lately and I have no idea what they might have affected, but this code was
working perfectly until I tried it today. I can play the midi file using the
Windows Media Player, so the midi file is not corrupt.
Does anybody have a clue? It has me snowed.
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, hModule As Long, ByVal dwFlags _
As Long) As Long
Public Declare Function mciExecute Lib "winmm.dll" _
(ByVal lpstrCommand As String) As Long
Sub PlayMidiFile(MidiFileName As String, Play As Boolean) 'Function for
calling midi files
If Dir(MidiFileName) = "" Then Exit Sub ' no file to play
If Play Then
mciExecute "play " & MidiFileName ' start playing
Else
mciExecute "stop " & MidiFileName ' stop playing
End If
End Sub
Sub x()
MidiStr = ""
On Error Resume Next
MidiStr = Dir("c:\windows\media\*.mid")
On Error GoTo 0
If MidiStr <> "" Then
Set fs = Application.FileSearch
With fs
.LookIn = "C:\Windows\Media"
.Filename = "*.mid"
If .Execute > 0 Then
MySnd = .FoundFiles(1)
End If
End With
PlayMidiFile (MySnd), True
End If
End Sub