Condividi:        

Come interrompere macro sndPlaySound

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Come interrompere macro sndPlaySound

Postdi systemcrack » 16/10/24 13:21

Ciao ragazzi,
al momento ho inserito dei suoni nello schema che reagiscono al click dei pulsanti con le seguenti macro:

In Modulo standard
Codice: Seleziona tutto
Option Explicit
#If Win64 Then
     Private Declare PtrSafe Function sndPlaySound _
         Lib "winmm.dll" Alias "sndPlaySoundA" _
         (ByVal lpszSoundName As String, ByVal uFlags As LongLong) As LongLong
 #Else
     Private Declare Function sndPlaySound _
         Lib "winmm.dll" Alias "sndPlaySoundA" _
         (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
 #End If
Public Sub mEseguiSuono(ByVal sNomeFile As String)
  Dim W  As Variant
  W = sndPlaySound(sNomeFile, 1)
End Sub


Poi associato a ciò che si vuole far suonare vedi esempio di seguito
Codice: Seleziona tutto
Private Sub UserForm_Activate()
mEseguiSuono ("INDIRIZZO SUL PC AL FILE.wav")
Set rOk = Nothing


Ora ho collegato un suono/musichetta un pò più lungo all'apertura della userform (tipo un sottofondo mentre la si utilizza), ma quando chiudo la userform il suono/musichetta non si interrompe.
Perciò ho inserito un pulsante alla userform a cui collegare la chiusura della userform, ma anche l'interruzione della musica
Codice: Seleziona tutto
Private Sub CommandButton5_Click()
Unload Me
End Sub

Dopo aver cercato in lungo ed in largo ho trovato questo argomento su stackoverflow in cui l'utente ha lo stesso problema che ho io, ma non riesco a risolvere con le soluzioni offerte dagli utenti.. infatti ho tentato con:
Codice: Seleziona tutto
Private Sub CommandButton5_Click()
sndPlaySound vbNullString, &H1
Unload Me
End Sub

oppure con
Codice: Seleziona tutto
Private Sub CommandButton5_Click()
sndPlaySound "NULL", &H1
Unload Me
End Sub

oppure ho provato a sostituire sndPlaySound con mEseguiSuono, ma nulla da fare, la musichetta non si ferma.
Ieri pomeriggio ero riuscito a capire come fare, ma per errore non devo aver salvato e oggi non riesco proprio a capire come ci sono arrivato :lol: Help me :aaah :lol:
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40

Sponsor
 

Re: Come interrompere macro sndPlaySound

Postdi Anthony47 » 16/10/24 16:20

In questa declaration usa Public invece che Private (in ambedue le posizioni)
Codice: Seleziona tutto
#If Win64 Then
     Public Declare PtrSafe Function sndPlaySound _
    'etc etc

Oppure metti la Sub CommandButton5_Click nello stesso modulo in cui hai dichiarato la funzione
Avatar utente
Anthony47
Moderatore
 
Post: 19446
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come interrompere macro sndPlaySound

Postdi systemcrack » 16/10/24 16:35

Grande Anthony.. FUNZIONA!!!
Avatar utente
systemcrack
Utente Senior
 
Post: 454
Iscritto il: 27/07/17 09:40


Torna a Applicazioni Office Windows


Topic correlati a "Come interrompere macro sndPlaySound":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti