Vraag : Hoe houd ik een vraag tegen PlaySound die output buiten de logica van het programma voortzet dat het riep?

Onder code voert correct tot de 1st instantie uit die geluid zou moeten veroorzaken.  Dat is de 12de bar van de 5de cyclus.  Het probleem is dat zodra het geluid de 1st keer. wordt geroepen. het blijft elke bar klinken daarna, alhoewel de code toont het duidelijk een één keer event.

For C = 1 aan CycPhase
iCycStart = (AncDyBar + 1)
iCycEnd = is (AncDyBar + (CycLength - 1))      
pBarCnt = 0
„*********** daarna de Opeenvolging van I **************
voor I = iCycStart aan iCycEnd
pBarCnt = pBarCnt + 1
“ PlayNow = Ongeldige PlaySound (, 0, 0) 'becommentari�ërde uit omdat niet work
als pBarCnt = 12 Then
v1 (z1, I) = (2, I)
versperren als C = 5 toen '5de cycle
PlayNow = (A, p, SND_FILENAME of SND_ASYNC of SND_NOWAIT)
het Eind If
Volgende i
AncDyBar van If
= i
Volgende C

I SndPurge en het Ongeldige koord zoals getoond uit becommentari�ërd hebben geprobeerd hierboven.  Het ongeldige koord houdt dll van totaal het werken tegen en SndPurge doet niets. en niets houdt een het herhalen vraag aan het wavdossier tegen.  Hieronder is de verdere informatie aan help.

Public verklaart de Lib „winmm.dll“ _
alias „PlaySoundA“ van de Functie van PlaySound _
(ByVal lpszName als Koord, _
ByVal hModule zoals lang, _
ByVal dwFlags als lang) aangezien Long
Public Const SND_FILENAME = 'naam &H20000 een dossier is - de naam
Public Const SND_ASYNC = &H1 'spel asynchronously
Public Const SND_NOWAIT = &H2000 'wacht niet als de bestuurder busy
Public Const SND_PURGE = &H40 'einde correcte (langere wav)

Thank u,
spc909
is

Antwoord : Hoe houd ik een vraag tegen PlaySound die output buiten de logica van het programma voortzet dat het riep?

hoe ongeveer

PlaySound (het vbNullString, 0, 0)
Andere oplossingen  
 
programming4us programming4us