Fråga : Hur jag stoppar en PlaySound appell som fortsätter tillverkat utanför logiken av programet, som kallade den?

Nedanfört kodifiera utför korrekt 1st anföra som exempel upp till som, bör den solida jordbruksprodukter.  Det är 12th bommar för av 5th cyklar.  Problemet är att, när det solitt kallas den 1st tiden. det fortsätter för att låta varje bommar för därefter, även om kodifierashowsna det är klart en en tid event.

For C = 1 till CycPhase
iCycStart = (AncDyBar + 1) iCycEnd för
= (AncDyBar + (CycLength - 1))       pBarCnt för
= 0
”*********** därefter jag ordnar **************
för I = iCycStart till pBarCnt för iCycEnd
= pBarCnt + 1
” PlayNow = ogiltiga PlaySound (, 0, 0) 'kommenterat ut, därför att inte gör work
, om pBarCnt = 12 Then
v1 (z1, I) = bommar för (2, I)
, om C = 5 därefter '5th cycle
PlayNow = PlaySound (A, p, SND_FILENAME eller SND_ASYNC eller SND_NOWAIT)
avslutar If
avslutar If
nästa i
AncDyBar = i
som nästa C

I har försökt SndPurge, och det ogiltigt stränger som visat kommenterat ut ovanför.  Det ogiltigt stränger stopp dllen från arbete alldeles, och SndPurgen gör ingenting. och ingenting stoppar en upprepande appell till waven sparar.  Nedanför är ytterligare information till help.

Public förklarar fungerar liben ”winmm.dll” pseudonymen ”PlaySoundA” för PlaySound _
för _
(ByVal lpszName som stränger, hModule för _
ByVal som Long, dwFlags för _
ByVal som Long) som Long
Public Const SND_FILENAME = känd &H20000 'är en spara - känd
Public Const SND_ASYNC = &H1 'lekasynchronously
Public Const SND_NOWAIT = &H2000 'gör inte väntan, om chauffören är busy
Public Const SND_PURGE = &H40 '

Thank för stoppet den solida (längre wav) dig,
spc909
" klar "

Svar : Hur jag stoppar en PlaySound appell som fortsätter tillverkat utanför logiken av programet, som kallade den?

hur om

PlaySound (vbNullString, 0, 0)
Andra lösningar  
 
programming4us programming4us