Newsgroup: it.comp.lang.visual-basic
Titolo: [vb6] API Playsound & Timer HELP

Ciao,
mi sto costruendo un piccolo metronomo software con vb6 che deve girare su
WinXP.
Per eseguire il WAV utilizzo l'api Playsound.
Questa api funziona benissimo se la associo ad un evento click di un
pulsante, mentre manda il programma in crash se richiamata dall'evento
Timer
Quindi questo codice funziona:
Private Sub Command3_Click()
PlaySound App.Path & "\S.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
Quest'altro invece no:
Private Sub MMTimer1_Timer()
PlaySound App.Path & "\S.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
Il crash si verifica solo con l'eseguibile compilato, mentre con il debug
di VB tutto funziona perfettamente
Come posso risolvere????
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


ciao io ho creato un nuovo progetto incollato il tuo codice, compilato e
funziona tutto, l'unico consiglio che mi viene in mente è di installare le
services pack di vb.
ciao.
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ciao.
I SP li ho già installati  :-(
Non mi rimane che testare l'eseguibile su altri computer, forse su quello
corrente c'è qualcosa che non va nella config audio...
Grazie comunque
ciao


 Come posso risolvere?
A quanto hai impostato l'intervallo del timer?
Lokar
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs/Statuto.txt
UGIdotNET - 
http://www.ugidotnet.org

 A quanto hai impostato l'intervallo del timer?
Altra domanda, scusami, il timer ed il commandbutton sono nello stesso form?
Il timer viene abilitato dopo il "caricamento" del form o e' gia' abilitato?
Potrebbe dipendere dal fatto che esegui qualche altra istruzione sulla
periferica audio (ad esempio durante il caricamento del programma) e che
"contemporaneamente" scatti l'evento Timer, generando un errore (che non ci hai
detto qual'e' pero').
Prova ad avviare il sw con timer disabilitato e ad abilitarlo in seguito(con un
pulsante ad esempio).
hth,


 pulsante ad esempio).
Fatto ma nulla. Ho cambiato anche PC ed il problema persiste.
Ci deve essere qualche incompatibilità tra WinXP e l'Api Playsound SE
chiamata da un Timer....   sigh....   :-(((

 [CUT selvaggio]
Provato a mettere la playsound in una sub e a chiamare quella dal timer? =)


sloamm wrote:
intanto sei sicuro (e se si, come) che il crash si verifichi già 
alla prima chiamata di PlaySound da timer ?
In caso contrario :
hai provato a simulare scientemente le due situazioni seguenti :
1) il timer è impostato a 20 secondi e il suono (e tutti gli 
annessi e connessi) sono sicuramente terminati tra una chiamata 
e l'altra
2) il timer è impostato ad un intervallo di un decimo della 
durata del suono, cosicchP sei sicuro che PlaySound venga 
richiamata mentre ancora gestisce la chiamata precedente.
Questo può accadere siccome la chioamata non  sincrona, ma 
asincrona (rientra subito quando ancora ha in gestione l'audio), 
col flag  SND_ASYNC .....
per il tempo che impieghi, prova a chiamarla in modo sincrono 
(anche se non so se neppure questo "trucco" possa forzare la 
perdita di eventi timer in caso di concorrenza)
ciao
CCCP++Mario


Tutto risolto!!!
La playsound era innocente, era il timer che creava problemi.
Ho trovato un altro ocx di timer ad alta risoluzione e ora funziona
perfettamente.
Non capisco solo perchč mi crashava anche con il timer standard, forse se
avessi riavviato il pc avrebbe funzionato e mi sarei reso conto prima
dov'era il problema.
Grazie mille per l'aiuto.
ciao
sloamm


 perfettamente.
Ovvero? Puoi dirmi di quale si tratta e dove reperirlo?
-- 
Starman

 Ovvero? Puoi dirmi di quale si tratta e dove reperirlo?
Lo trovi alla pagina
http://digilander.libero.it/VBItalia/SOFTWARE.html
Cerca "high resolution timer" nella pagina
ciao
sloamm

 scrive:

Perfetto, grazie mille! ;)
--
Starman