Frage : Wie stoppe ich einen PlaySound Anruf, der Ausgang außerhalb der Logik des Programms fortsetzt, das sie benannte?

Unterhalb des Codes führt richtig bis zum 1. Fall durch, der Ton produzieren sollte.  Der ist der 12. Stab des 5. Zyklus.  Problem ist, dass, sobald der Ton das 1. Mal… benannt wird, es fortfährt, jeden Stab danach zu klingen, obwohl die Codeerscheinen es offenbar eine eine Zeit event.

For C = 1 CycPhase
zum iCycStart = ist (AncDyBar + 1)
iCycEnd = (AncDyBar + (CycLength - 1))
pBarCnt = 0
„*********** Reihenfolge zunächst I **************
für i = iCycStart iCycEnd
zum pBarCnt = zum pBarCnt + zu 1
“ PlayNow =, PlaySound (Null, 0, 0) 'kommentierte heraus, weil nicht work
wenn pBarCnt = 12 Then
v1 tut (z1, i) = Stab (2, i)
                Wenn C = 5 dann '5. cycle
PlayNow = PlaySound (A, p, SND_FILENAME oder SND_ASYNC oder SND_NOWAIT)
Ende If
Ende If
folgendes i
AncDyBar = i
folgendes C

I versucht haben, kommentierten SndPurge und die leere Zeichenkette wie gezeigt heraus oben.  Die leere Zeichenkette stoppt das DLL von zusammen arbeiten und das SndPurge tut nichts… und nichts stoppt einen wiederholenden Anruf zur wav Akte.  Unter ist weitere Information zu help.

Public erklären, dass Funktion PlaySound _
Bibliothek „winmm.dll“ _
alias „PlaySoundA“ (ByVal lpszName als Schnur, _
ByVal hModule als lang, _
ByVal dwFlags als lang) da Long
Public Const 'Name SND_FILENAME = &H20000 ein Dateiname
Public Const SND_ASYNC = &H1 'Spiel asynchronously
Public Const SND_NOWAIT = &H2000 'warten nicht ist, wenn der Fahrer busy
Public Const SND_PURGE = &H40 'Endstichhaltige (längeres wav)

Thank Sie ist,
spc909

Antwort : Wie stoppe ich einen PlaySound Anruf, der Ausgang außerhalb der Logik des Programms fortsetzt, das sie benannte?

über wie

PlaySound (vbNullString, 0, 0)
Weitere Lösungen  
 
programming4us programming4us