Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonctions API (?) et versions de Windows

35 réponses
Avatar
ManBas
Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre un
son wav:

Declare Function sndPlaySound32 Lib "C:\WINDOWS\SYSTEM32\winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "\SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "\SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.

10 réponses

1 2 3 4
Avatar
michdenis
Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans l'arborescence de
l'explorateur windows et d'adapter selon la version du système d'opération le chemin
dans la déclaration de l'API.


Salutations!


"ManBas" a écrit dans le message de news:
Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.
Avatar
ManBas
Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


"michdenis" a écrit dans le message de news:

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système d'opération
le chemin
dans la déclaration de l'API.


Salutations!


"ManBas" a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.





Avatar
LSteph
Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.



Avatar
michdenis
Bonjour ManBas,

Cet API incluant les constantes devraient fonctionner je crois de Windows 95 à windows XP

'Déclaration dans le haut du module : Source : URL: http://www.allapi.net/
Private Const SND_APPLICATION = &H80 ' look for application specific association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Sub JouerSon()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub


Salutations!



"ManBas" a écrit dans le message de news:
Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


"michdenis" a écrit dans le message de news:

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système d'opération
le chemin
dans la déclaration de l'API.


Salutations!


"ManBas" a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.





Avatar
ManBas
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer mon
ThisWorkbook.Path & "SonEssai.Wav"


"LSteph" a écrit dans le message de news:

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.







Avatar
LSteph
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook de la
macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME Or
SND_ASYNC

"ManBas" a écrit dans le message de news:
%
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer mon
ThisWorkbook.Path & "SonEssai.Wav"


"LSteph" a écrit dans le message de news:

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne dépasse guère le mimétisme).
Merci d'avance.











Avatar
ManBas
Merci MichDenis. J'ai le même problème que pour la réponse de LSteph: dans
la procédure je ne parviens plus à replacer mon "SonEssai".

"michdenis" a écrit dans le message de news:

Bonjour ManBas,

Cet API incluant les constantes devraient fonctionner je crois de Windows
95 à windows XP

'Déclaration dans le haut du module : Source : URL:
http://www.allapi.net/
Private Const SND_APPLICATION = &H80 ' look for application specific
association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry
identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not
found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA"
(ByVal lpszName As String, ByVal hModule As Long, ByVal
dwFlags As Long) As Long

Sub JouerSon()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub


Salutations!



"ManBas" a écrit dans le message de news:

Bonjour MichDenis,
Effectivement ça marche bien dans 98. Demain je chercherai le fichier dans
NT2000.
Merci de ton aide.
Pourrais-tu STP m'écrire les lignes qui introduisent "si le système
d'application est ..."?


"michdenis" a écrit dans le message de news:

Bonjour ManBas,

Sous toute réserve ...

Le répertoire "System32" n'existe pas sous Windows 98, tu devrais le
remplacer par "System"
dans la ligne de déclaration de l'API.

Mais la meilleure façon, est de rechercher le fichier "winmm.dll " dans
l'arborescence de
l'explorateur windows et d'adapter selon la version du système
d'opération
le chemin
dans la déclaration de l'API.


Salutations!


"ManBas" a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un
son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau ne
dépasse guère le mimétisme).
Merci d'avance.








Avatar
LSteph
...ouppsss
PlaySound ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME Or
SND_ASYNC

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook de
la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME Or
SND_ASYNC

"ManBas" a écrit dans le message de news:
%
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer mon
ThisWorkbook.Path & "SonEssai.Wav"


"LSteph" a écrit dans le message de news:

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne dépasse guère le mimétisme).
Merci d'avance.















Avatar
ManBas
Sûr et certain (je n'ai pas touché à ce qui fonctionnait). Le problème vient
du code qui s'auto-écrit en rouge: j'ai essayé avec parenthèses, avec
guillemets, etc...

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook de
la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME Or
SND_ASYNC

"ManBas" a écrit dans le message de news:
%
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer mon
ThisWorkbook.Path & "SonEssai.Wav"


"LSteph" a écrit dans le message de news:

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour émettre
un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne dépasse guère le mimétisme).
Merci d'avance.















Avatar
LSteph
Rouge où?

"ManBas" a écrit dans le message de news:

Sûr et certain (je n'ai pas touché à ce qui fonctionnait). Le problème
vient du code qui s'auto-écrit en rouge: j'ai essayé avec parenthèses,
avec guillemets, etc...

"LSteph" a écrit dans le message de news:
%
Estu sûr qu'il est sur ce répertoire et que c'est bien celui du wbook de
la macro..
sinon ceci devrait

PlaySound "ThisWorkbook.Path & "SonEssai.Wav", ByVal 0&, SND_FILENAME Or
SND_ASYNC

"ManBas" a écrit dans le message de news:
%
Bonjour LSteph,
Merci pour ton aide.
Je mets du temps à te répondre mais je ne parviens pas à ré-insérer mon
ThisWorkbook.Path & "SonEssai.Wav"


"LSteph" a écrit dans le message de news:

Bonjour "ManBas" ,
Ceci devrait passer par exemple(declare d'un seul tenant):

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As
Long
Sub test()
PlaySound "C:WINDOWSMEDIATADA.WAV", ByVal 0&, SND_FILENAME Or
SND_ASYNC
End Sub


'lSteph



a écrit dans le message de news:

Bonjour à tous,
Selon une solution d'Excelabo j'ai recopié le code suivant pour
émettre un son wav:

Declare Function sndPlaySound32 Lib "C:WINDOWSSYSTEM32winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub SonEssai_wav()
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
End Sub

C'est génial et tout baigne...dans WinXP.
Echec de la ligne:
Call sndPlaySound32(ThisWorkbook.Path & "SonEssai.Wav", 0)
...dans 98 et NT2000.
Que puis-je faire pour corriger l'anomalie ? (restons cool, mon niveau
ne dépasse guère le mimétisme).
Merci d'avance.



















1 2 3 4