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

Comment régler le son automatiquement ???

11 réponses
Avatar
LE TROLL
Bonjour,

Quelqu'un sait-il comment régler le son automatiquement, celui des HP de
sortie, ceci afin de faire un exe qui au lancement réglerait le son très
bas, merci ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.

10 réponses

1 2
Avatar
Henri
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Quelqu'un sait-il comment régler le son automatiquement, celui des HP
de sortie, ceci afin de faire un exe qui au lancement réglerait le son
très bas, merci ?



Avec les apis MM
Avatar
GD
Bonsour® Henri avec ferveur ;o))) vous nous disiez :

"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Quelqu'un sait-il comment régler le son automatiquement, celui
des HP de sortie, ceci afin de faire un exe qui au lancement
réglerait le son très bas, merci ?



Avec les apis MM



Arghhhh... Attila va se facher...
Avec Joseph il faut etre plus explicite que ça !!!

Merci
'URL: http://www.allapi.net/
'E-Mail:

Private Const HIGHEST_VOLUME_SETTING = 100 '%
Private Const AUX_MAPPER = -1&
Private Const MAXPNAMELEN = 32
Private Const AUXCAPS_CDAUDIO = 1 ' audio from internal CD-ROM drive
Private Const AUXCAPS_AUXIN = 2 ' audio from auxiliary input jacks
Private Const AUXCAPS_VOLUME = &H1 ' supports volume control
Private Const AUXCAPS_LRVOLUME = &H2 ' separate left-right volume control
Private Const MMSYSERR_NOERROR = 0
Private Const MMSYSERR_BASE = 0
Private Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2)
Private Type AUXCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
wTechnology As Integer
dwSupport As Long
End Type
Private Type VolumeSetting
LeftVol As Integer
RightVol As Integer
End Type
Private Declare Function auxGetNumDevs Lib "winmm.dll" () As Long
Private Declare Function auxGetDevCaps Lib "winmm.dll" Alias "auxGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As AUXCAPS, ByVal uSize As Long) As Long
Private Declare Function auxSetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
Private Declare Function auxGetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByRef lpdwVolume As VolumeSetting) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Function nSigned(ByVal lUnsignedInt As Long) As Integer
Dim nReturnVal As Integer ' Return value from Function
If lUnsignedInt > 65535 Or lUnsignedInt < 0 Then
MsgBox "Error in conversion from Unsigned to nSigned Integer"
nSignedInt = 0
Exit Function
End If
If lUnsignedInt > 32767 Then
nReturnVal = lUnsignedInt - 65536
Else
nReturnVal = lUnsignedInt
End If
nSigned = nReturnVal
End Function
Private Function lUnsigned(ByVal nSignedInt As Integer) As Long
Dim lReturnVal As Long ' Return value from Function
If nSignedInt < 0 Then
lReturnVal = nSignedInt + 65536
Else
lReturnVal = nSignedInt
End If
If lReturnVal > 65535 Or lReturnVal < 0 Then
MsgBox "Error in conversion from nSigned to Unsigned Integer"
lReturnVal = 0
End If
lUnsigned = lReturnVal
End Function
Private Function lSetVolume(ByRef lLeftVol As Long, ByRef lRightVol As Long, lDeviceID As Long) As Long
Dim Volume As VolumeSetting, lBothVolumes As Long
Volume.LeftVol = nSigned(lLeftVol * 65535 / HIGHEST_VOLUME_SETTING)
Volume.RightVol = nSigned(lRightVol * 65535 / HIGHEST_VOLUME_SETTING)
'copy our Volume-variable to a long
CopyMemory lBothVolumes, Volume.LeftVol, Len(Volume)
'call the SetVolume-function
lSetVolume = auxSetVolume(lDeviceID, lBothVolumes)
End Function
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail:
Dim Volume As VolumeSetting, Cnt As Long, AC As AUXCAPS
'set the output to a persistent graphic
Me.AutoRedraw = True
'loop through all the devices
For Cnt = 0 To auxGetNumDevs - 1 'auxGetNumDevs is zero-based
'get the volume
auxGetVolume Cnt, Volume
'get the device capabilities
auxGetDevCaps Cnt, AC, Len(AC)
'print the name on the form
Me.Print "Device #" + Str$(Cnt + 1) + ": " + Left(AC.szPname, InStr(AC.szPname, vbNullChar) - 1)
'print the left- and right volume on the form
Me.Print "Left volume:" + Str$(HIGHEST_VOLUME_SETTING * lUnsigned(Volume.LeftVol) / 65535)
Me.Print "Right volume:" + Str$(HIGHEST_VOLUME_SETTING * lUnsigned(Volume.RightVol) / 65535)
'set the left- and right-volume to 50%
lSetVolume 50, 50, Cnt
Me.Print "Both volumes now set to 50%"
'empty line
Me.Print
Next
End Sub
Avatar
Jacques93
Bonjour GD,
GD a écrit :
Bonsour® Henri avec ferveur ;o))) vous nous disiez :

"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Quelqu'un sait-il comment régler le son automatiquement, celui
des HP de sortie, ceci afin de faire un exe qui au lancement
réglerait le son très bas, merci ?


Avec les apis MM



Arghhhh... Attila va se facher...
Avec Joseph il faut etre plus explicite que ça !!!




[...]

Private Declare Function auxGetNumDevs Lib "winmm.dll" () As Long



[...]

Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail:
Dim Volume As VolumeSetting, Cnt As Long, AC As AUXCAPS
'set the output to a persistent graphic
Me.AutoRedraw = True
'loop through all the devices
For Cnt = 0 To auxGetNumDevs - 1 'auxGetNumDevs is zero-based



Ben ptet qu'il va se fâcher quand même ;-)
parce que sous Vista :

AUX devices are not supported, and the auxGetNumDevs function in
Mmsystem.h will always return a count of zero

<http://msdn.microsoft.com/en-us/library/aa906227.aspx>

C'est devenu un peu plus compliqué, et j'ai mes valises à faire :-)

<http://msdn.microsoft.com/en-us/library/dd368062(VS.85).aspx>

--

Cordialement,

Jacques.
Avatar
GD
Bonsour® Jacques93 avec ferveur ;o))) vous nous disiez :

Ben ptet qu'il va se fâcher quand même ;-)




;o)))
c'est tellement prévisible ...
tu t'attends à un autre comportement ???
;o)))

nb:
je n'ai pas Vista :-(
Avatar
LE TROLL
Henri, ça c'est arrêté à Henri IV mais toi tu peux prendre le
"Henrei 0"

Tu dis bonjour où, et au revoir, ton compte le mettre quand ? T'as été
élevé dans un zoo ma parole, tu faisais le gorille....

Et ça "MM" c'est une réponse ? Y a pas marqué "poubelle" !

Normalement, ce genre de réponse, on fait un copier/coller et ça marche,
or si je colle la tienne "MM", ce sera à la rigueur accepté si je mets
devant une apostrophe, c'est tout ce qu'on peut en faire, ça ne vaut rien
d'autre !

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Henri" a écrit dans le message de
news:
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Quelqu'un sait-il comment régler le son automatiquement, celui des HP
de sortie, ceci afin de faire un exe qui au lancement réglerait le son
très bas, merci ?



Avec les apis MM



Avatar
LE TROLL
Bonjour GD, Gédéon peut être ?

C'est vrai, t'as vu comment il me répond le Henri 0, faire ça à moi le
célèbre Troll, c'est une offense, t'es d'accord ? (faut toujours me répondre
"oui") !

Sinon, merci de ta réponse, mais si tu avais plus long, il ne fallait
surtout pas hésiter puisqu'on ne paye pas le papier, bien que... ça va finir
par user ma mémoire de la faire travailler comme ça, je parle de celle de
mon PC chat va de soi... La prochaine fois, tu mets des paragraphes et des
chapitres, avec une table des matière, que je puisse suivre, eh oui !
Bon, je vais copier/coller, espérons que ça marche.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"GD" a écrit dans le message de
news:
Bonsour® Henri avec ferveur ;o))) vous nous disiez :

"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Quelqu'un sait-il comment régler le son automatiquement, celui
des HP de sortie, ceci afin de faire un exe qui au lancement
réglerait le son très bas, merci ?



Avec les apis MM



Arghhhh... Attila va se facher...
Avec Joseph il faut etre plus explicite que ça !!!

Merci
'URL: http://www.allapi.net/
'E-Mail:

Private Const HIGHEST_VOLUME_SETTING = 100 '%
Private Const AUX_MAPPER = -1&
Private Const MAXPNAMELEN = 32
Private Const AUXCAPS_CDAUDIO = 1 ' audio from internal CD-ROM drive
Private Const AUXCAPS_AUXIN = 2 ' audio from auxiliary input jacks
Private Const AUXCAPS_VOLUME = &H1 ' supports volume control
Private Const AUXCAPS_LRVOLUME = &H2 ' separate left-right volume control
Private Const MMSYSERR_NOERROR = 0
Private Const MMSYSERR_BASE = 0
Private Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2)
Private Type AUXCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
wTechnology As Integer
dwSupport As Long
End Type
Private Type VolumeSetting
LeftVol As Integer
RightVol As Integer
End Type
Private Declare Function auxGetNumDevs Lib "winmm.dll" () As Long
Private Declare Function auxGetDevCaps Lib "winmm.dll" Alias
"auxGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As AUXCAPS, ByVal uSize As
Long) As Long
Private Declare Function auxSetVolume Lib "winmm.dll" (ByVal uDeviceID As
Long, ByVal dwVolume As Long) As Long
Private Declare Function auxGetVolume Lib "winmm.dll" (ByVal uDeviceID As
Long, ByRef lpdwVolume As VolumeSetting) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest
As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Function nSigned(ByVal lUnsignedInt As Long) As Integer
Dim nReturnVal As Integer ' Return value from Function
If lUnsignedInt > 65535 Or lUnsignedInt < 0 Then
MsgBox "Error in conversion from Unsigned to nSigned Integer"
nSignedInt = 0
Exit Function
End If
If lUnsignedInt > 32767 Then
nReturnVal = lUnsignedInt - 65536
Else
nReturnVal = lUnsignedInt
End If
nSigned = nReturnVal
End Function
Private Function lUnsigned(ByVal nSignedInt As Integer) As Long
Dim lReturnVal As Long ' Return value from Function
If nSignedInt < 0 Then
lReturnVal = nSignedInt + 65536
Else
lReturnVal = nSignedInt
End If
If lReturnVal > 65535 Or lReturnVal < 0 Then
MsgBox "Error in conversion from nSigned to Unsigned Integer"
lReturnVal = 0
End If
lUnsigned = lReturnVal
End Function
Private Function lSetVolume(ByRef lLeftVol As Long, ByRef lRightVol As Long,
lDeviceID As Long) As Long
Dim Volume As VolumeSetting, lBothVolumes As Long
Volume.LeftVol = nSigned(lLeftVol * 65535 / HIGHEST_VOLUME_SETTING)
Volume.RightVol = nSigned(lRightVol * 65535 / HIGHEST_VOLUME_SETTING)
'copy our Volume-variable to a long
CopyMemory lBothVolumes, Volume.LeftVol, Len(Volume)
'call the SetVolume-function
lSetVolume = auxSetVolume(lDeviceID, lBothVolumes)
End Function
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail:
Dim Volume As VolumeSetting, Cnt As Long, AC As AUXCAPS
'set the output to a persistent graphic
Me.AutoRedraw = True
'loop through all the devices
For Cnt = 0 To auxGetNumDevs - 1 'auxGetNumDevs is zero-based
'get the volume
auxGetVolume Cnt, Volume
'get the device capabilities
auxGetDevCaps Cnt, AC, Len(AC)
'print the name on the form
Me.Print "Device #" + Str$(Cnt + 1) + ": " + Left(AC.szPname,
InStr(AC.szPname, vbNullChar) - 1)
'print the left- and right volume on the form
Me.Print "Left volume:" + Str$(HIGHEST_VOLUME_SETTING *
lUnsigned(Volume.LeftVol) / 65535)
Me.Print "Right volume:" + Str$(HIGHEST_VOLUME_SETTING *
lUnsigned(Volume.RightVol) / 65535)
'set the left- and right-volume to 50%
lSetVolume 50, 50, Cnt
Me.Print "Both volumes now set to 50%"
'empty line
Me.Print
Next
End Sub
Avatar
LE TROLL
Bonjour,

Ah, prévisible ou pas, ça ne marche pas, mon slider son il est à 16, et
il reste à 16 !
Déjà faudrait à mon sens ne pas mettre l'écriture écran dans le load, car
comme ce n'est pas encore affiché, ça ne risque pas d'écrire, faudrait le
mettre dans l'activate ton écriture print.

Pour le reste, voici, si tu penses pouvoir le faire marcher :


' son2, form1, réglage son volume
'
Option Explicit
Private Const HIGHEST_VOLUME_SETTING = 100 '%
Private Const AUX_MAPPER = -1&
Private Const MAXPNAMELEN = 32
Private Const AUXCAPS_CDAUDIO = 1 ' audio from internal CD-ROM drive
Private Const AUXCAPS_AUXIN = 2 ' audio from auxiliary input jacks
Private Const AUXCAPS_VOLUME = &H1 ' supports volume control
Private Const AUXCAPS_LRVOLUME = &H2 ' separate left-right volume control
Private Const MMSYSERR_NOERROR = 0
Private Const MMSYSERR_BASE = 0
Private Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2)
Private Type AUXCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
wTechnology As Integer
dwSupport As Long
End Type
Private Type VolumeSetting
LeftVol As Integer
RightVol As Integer
End Type
Private Declare Function auxGetNumDevs Lib "winmm.dll" () As Long
Private Declare Function auxGetDevCaps Lib "winmm.dll" Alias
"auxGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As AUXCAPS, ByVal uSize As
Long) As Long
Private Declare Function auxSetVolume Lib "winmm.dll" (ByVal uDeviceID As
Long, ByVal dwVolume As Long) As Long
Private Declare Function auxGetVolume Lib "winmm.dll" (ByVal uDeviceID As
Long, ByRef lpdwVolume As VolumeSetting) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Function nSigned(ByVal lUnsignedInt As Long) As Integer


Sub Form_Load()
Dim Volume As VolumeSetting, Cnt As Long, AC As AUXCAPS
Me.AutoRedraw = True
For Cnt = 0 To auxGetNumDevs - 1 'auxGetNumDevs is zero-based
auxGetVolume Cnt, Volume
auxGetDevCaps Cnt, AC, Len(AC)
Me.Print "Device #" + Str$(Cnt + 1) + ": " + Left(AC.szPname,
InStr(AC.szPname, vbNullChar) - 1)
Me.Print "Left volume:" + Str$(HIGHEST_VOLUME_SETTING *
lUnsigned(Volume.LeftVol) / 65535)
Me.Print "Right volume:" + Str$(HIGHEST_VOLUME_SETTING *
lUnsigned(Volume.RightVol) / 65535)
lSetVolume 50, 50, Cnt
Me.Print "Both volumes now set to 50%"
Me.Print
Next
End Sub

Private Function lUnsigned(ByVal nSignedInt As Integer) As Long
Dim nReturnVal As Integer ' Return value from Function
If lUnsignedInt > 65535 Or lUnsignedInt < 0 Then
MsgBox "Error in conversion from Unsigned to nSigned Integer"
nSignedInt = 0
Exit Function
End If
If lUnsignedInt > 32767 Then
nReturnVal = lUnsignedInt - 65536
Else
nReturnVal = lUnsignedInt
End If
nSigned = nReturnVal
End Function


Private Function lSetVolume(ByRef lLeftVol As Long, ByRef lRightVol As Long,
lDeviceID As Long) As Long
Dim Volume As VolumeSetting, lBothVolumes As Long
Volume.LeftVol = nSigned(lLeftVol * 65535 / HIGHEST_VOLUME_SETTING)
Volume.RightVol = nSigned(lRightVol * 65535 / HIGHEST_VOLUME_SETTING)
CopyMemory lBothVolumes, Volume.LeftVol, Len(Volume)
lSetVolume = auxSetVolume(lDeviceID, lBothVolumes)
End Function

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"GD" a écrit dans le message de
news:
Bonsour® Jacques93 avec ferveur ;o))) vous nous disiez :

Ben ptet qu'il va se fâcher quand même ;-)




;o)))
c'est tellement prévisible ...
tu t'attends à un autre comportement ???
;o)))

nb:
je n'ai pas Vista :-(
Avatar
LE TROLL
Bonjour Jacques,

Merci d'avoir donnée des hyperliens en anglais, tu n'aurais pas les
mêmes en arabe avec les entêtes en chinois par hasard, parce qu'en fait, on
est dans un forum "français" où il est dit que l'on écrit en français...

Cordialement et bonnes vacances si tu pars...
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Jacques93" a écrit dans le message de
news:%
Bonjour GD,
GD a écrit :
Bonsour® Henri avec ferveur ;o))) vous nous disiez :
"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Quelqu'un sait-il comment régler le son automatiquement, celui
des HP de sortie, ceci afin de faire un exe qui au lancement
réglerait le son très bas, merci ?


Avec les apis MM



Arghhhh... Attila va se facher...
Avec Joseph il faut etre plus explicite que ça !!!




[...]

Private Declare Function auxGetNumDevs Lib "winmm.dll" () As Long



[...]

Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail:
Dim Volume As VolumeSetting, Cnt As Long, AC As AUXCAPS
'set the output to a persistent graphic
Me.AutoRedraw = True
'loop through all the devices
For Cnt = 0 To auxGetNumDevs - 1 'auxGetNumDevs is zero-based



Ben ptet qu'il va se fâcher quand même ;-)
parce que sous Vista :

AUX devices are not supported, and the auxGetNumDevs function in
Mmsystem.h will always return a count of zero

<http://msdn.microsoft.com/en-us/library/aa906227.aspx>

C'est devenu un peu plus compliqué, et j'ai mes valises à faire :-)

<http://msdn.microsoft.com/en-us/library/dd368062(VS.85).aspx>

--

Cordialement,

Jacques.


Avatar
Jacques93
LE TROLL a écrit :
Bonjour Jacques,

Merci d'avoir donnée des hyperliens en anglais, tu n'aurais pas les
mêmes en arabe avec les entêtes en chinois par hasard, parce qu'en fait,
on est dans un forum "français" où il est dit que l'on écrit en français...




Désolé, MS ne traduit pas ce genre de doc. L'important, par rapport au
code de GD, c'est que l'API 'auxGetNumDevs' ne fonctionne pas sous Vista
, cela devrait retourner le nombre de périphérique 'son' (en gros), mais :

AUX devices are not supported, and the auxGetNumDevs function in
Mmsystem.h will always return a count of zero

indique que sous Vista cela renvoie toujours zéro.

Et comme le code dans Form_Load contient :

For Cnt = 0 To auxGetNumDevs - 1

on ne rentre jamais dans la boucle et on sort de la procèdure.

Cordialement et bonnes vacances si tu pars...



Merci, Pour l'instant je prépare, départ imminent :-)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.






--

Cordialement,

Jacques.
Avatar
Alexis
LE TROLL wrote:

Et ça "MM" c'est une réponse ?



Oui.
Si tu n'es pas foutu de traduire MM en MultiMedia, alors que c'était
déjà le cas en Win 3.1 au siècle dernier...
1 2