Risultati da 1 a 8 di 8

Discussione: Conversione macro Audio da 32 bit a 64 bit



  1. #1
    L'avatar di Michele.p
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Finale Emilia
    Età
    28
    Messaggi
    8
    Versione Office
    2013
    Likes ricevuti
    1

    Conversione macro Audio da 32 bit a 64 bit

    Buongiorno a tutti!

    Ho un problema nella riproduzione di un audio, riscontrando il seguente problema (https://www.dropbox.com/s/kfj4yhh4up...zione.PNG?dl=0).

    Leggendo e domandondo nel forum, ho saputo che utilizzando un sistema operativo a 64 bit il codice non è appropriato.
    Sapreste dirmi come devo modificare il codice? O almeno sapreste dirmi come posso ovviare a questo problema?
    Vi ringrazio in anticipo:32:! Buona giornata a tutti!!

    P.S. Vi allego il file Excel per la riproduzione audio (fornitomi gentilmente da un utente del forum).
    File Allegati File Allegati

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: Conversione macro Audio da 32 bit a 64 bit

    Ciao,
    la soluzione ti viene fornita direttamente nel messaggio di errore....
    Per i sistemi a 64 bit devi aggiungere "PtrSafe" ad ogni funzione che dichiari.

    Quindi il tuo codice diventerebbe:

    Codice: 
    Private Declare PtrSafe Function Play Lib "WINMM.DLL" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    
    
    Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
    String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    
    
    Public Const SW_NORMAL = 1
    
    
    Sub MioSuono()
    Dim Ret As Long
    Dim file As String
        file = ThisWorkbook.Path & ("\Audio\gong.wav")
        Ret = Play(file, SND_ASYNC)
    End Sub

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. #3
    L'avatar di Michele.p
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Finale Emilia
    Età
    28
    Messaggi
    8
    Versione Office
    2013
    Likes ricevuti
    1

    Re: Conversione macro Audio da 32 bit a 64 bit

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao,
    la soluzione ti viene fornita direttamente nel messaggio di errore....
    Per i sistemi a 64 bit devi aggiungere "PtrSafe" ad ogni funzione che dichiari.

    Quindi il tuo codice diventerebbe:

    Codice: 
    Private Declare PtrSafe Function Play Lib "WINMM.DLL" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    
    
    Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
    String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    
    
    Public Const SW_NORMAL = 1
    
    
    Sub MioSuono()
    Dim Ret As Long
    Dim file As String
        file = ThisWorkbook.Path & ("\Audio\gong.wav")
        Ret = Play(file, SND_ASYNC)
    End Sub

    Impeccabile. Funziona alla perfezione.
    Grazie mille per l' aiuto cromagno!

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: Conversione macro Audio da 32 bit a 64 bit

    Citazione Originariamente Scritto da Michele.p Visualizza Messaggio
    Impeccabile. Funziona alla perfezione.
    Grazie mille per l' aiuto cromagno!
    Ciao,
    se hai risolto il problema, segna questo thread come "RISOLTO".
    Vai sul menù "Strumenti Discussione" (all'inizio del thread) e scegli la voce "Segna questa discussione come Risolta...".

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  5. #5
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0

    Re: Conversione macro Audio da 32 bit a 64 bit

    Ciao Michele per prima cosa mi fa piacere che ti sia piaciuto il mio File .
    In più se me lo consenti : Vorrei chiedere Cromagno sempre inerente a questa Cosa.
    E cioè : Se io al posto di (PtrSafe) come hai suggerito tu, Cambiassi Semplicemente :

    Codice: 
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
    String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    in :

    Codice: 
    Public Declare Function ShellExecute Lib "shell64.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
    String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Cambierebbe qualcosa o no ?
    Ciao da Maurizio

  6. #6

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: Conversione macro Audio da 32 bit a 64 bit

    Ciao Maurizio,
    che io sappia (non sono molto pratico di queste "sintassi") la libreria "shell32.ddl" è valida per entrambe le piattaforme (32/64 bit). Quel 32 in fondo è solo parte del nome della libreria (non credo esista una libreria "Shell64.dll").

    Quello che si deve specificare è nella "dichiarazione" e si fa per l'appunto con "PtrSafe" che (a quanto è capito) è un comando presente solo nelle versioni superiori a VB6 proprio per rendere effettiva la compatibilità.

    Per questo motivo, per rendere valida la funzione con entrambe le piattaforme, basterebbe un semplice "If...else...end if".

    Questo codice dovrebbe funzionare sia per i 32 che per i 64 bit (uso il condizionale perchè non ho modo di provarlo in sistemi a 32 bit):

    Codice: 
    #If VBA7 Then
        Private Declare PtrSafe Function Play Lib "WINMM.DLL" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
        
        Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
        String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #Else
        Private Declare Function Play Lib "WINMM.DLL" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    
    
        Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As _
        String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #End If
    
    
    Public Const SW_NORMAL = 1
    
    
    Sub MioSuono()
    Dim Ret As Long
    Dim file As String
        file = ThisWorkbook.Path & ("\Audio\gong.wav")
        Ret = Play(file, SND_ASYNC)
    End Sub
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  7. #7
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0

    Re: Conversione macro Audio da 32 bit a 64 bit

    Grazie Cromagno come sempre sei Gentilissimo.
    Io ti posso assicurare che per Prova ho inserito il Numero 64 al posto del 32 lasciando tutto il Resto Inalterato e Funziona Ugualmente senza Darmi Errore.
    Per qui Presumo di si ? ciao e Buon Fine Settimana

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: Conversione macro Audio da 32 bit a 64 bit

    Citazione Originariamente Scritto da A.Maurizio Visualizza Messaggio
    Grazie Cromagno come sempre sei Gentilissimo.
    Io ti posso assicurare che per Prova ho inserito il Numero 64 al posto del 32 lasciando tutto il Resto Inalterato e Funziona Ugualmente senza Darmi Errore.
    Per qui Presumo di si ? ciao e Buon Fine Settimana
    Ciao Maurizio,
    non saprei che risponderti :273:

    buon week-end
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

Discussioni Simili

  1. [Risolto] Conversione dati
    Di g8trading nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 08/01/17, 22:24
  2. [Risolto] Riproduzione audio
    Di Michele.p nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 05/11/16, 18:28
  3. problema inserimento clip audio
    Di alexia10 nel forum Domande su Microsoft Power Point
    Risposte: 7
    Ultimo Messaggio: 24/10/16, 23:29
  4. conversione di ore
    Di D@nilo nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 10/07/16, 21:20
  5. Inserimento file audio in foglio Excel
    Di roky48 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 13/05/16, 12:12

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •