Microsoft
Software
Hardware
Network
Question : How do I stop a PlaySound call that continues output outside the logic of the program that called it?
Below code executes correctly up to the 1st instance that should produce sound. That is the 12th bar of the 5th cycle. Problem is that once the sound is called the 1st time . . . it continues to sound every bar thereafter, even though the code shows it is clearly a one time event.
For C = 1 To CycPhase
iCycStart = (AncDyBar + 1)
iCycEnd = (AncDyBar + (CycLength - 1))
pBarCnt = 0
'*********** Next I Sequence **************
For i = iCycStart To iCycEnd
pBarCnt = pBarCnt + 1
' PlayNow = PlaySound(Null, 0, 0) 'Commented out because does not work
If pBarCnt = 12 Then
v1(z1, i) = Bar(2, i)
If C = 5 Then '5th cycle
PlayNow = PlaySound(A, p, SND_FILENAME Or SND_ASYNC Or SND_NOWAIT)
End If
End If
Next i
AncDyBar = i
Next C
I've tried SndPurge and the Null string as shown commented out above. The null string stops the dll from working altogether and the SndPurge does nothing . . . and nothing stops a repeating call to the wav file. Below is further information to help.
Public Declare Function PlaySound _
Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, _
ByVal dwFlags As Long) As Long
Public Const SND_FILENAME = &H20000 'name is a file name
Public Const SND_ASYNC = &H1 'play asynchronously
Public Const SND_NOWAIT = &H2000 'don't wait if the driver is busy
Public Const SND_PURGE = &H40 'stop sound (longer wav)
Thank You,
spc909
Answer : How do I stop a PlaySound call that continues output outside the logic of the program that called it?
how about
PlaySound(vbNullString, 0, 0)
Random Solutions
dynamic dropdown list months
Routing to 2 networks
Sorting options for data contained in the footer
Dual Monitor in MDI application
vb scripting - cacls - for domain users
create a shared folder on OSX server
Windows Server Editions (32bit or 64bit)
procedure syntax
Quicktime movie sound but no video
Cannot RDP to server after DSL modem was replaced