Page 1 sur 1

[R] Couper le son d'un programme

Posté : mer. 23 oct. 2013 12:49
par Utilisateur 4989 supprimé
Bonjour,
Je sais que pour couper le son de l'ordinateur, il suffit de faire : Send("{VOLUME_MUTE}")
Mais comment faire pour couper juste le son d'un logiciel lancé, sans couper le son de tout l'ordinateur ?
Merci d'avance.

Re: [..] Couper le son d'un programme

Posté : mer. 23 oct. 2013 16:02
par timmalos
Si on veut un truc propre et que quelqu'un souhaite s'y coller, lien msdn : http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Sinon, il existe une maniere d'automatiser à coup de ControlSend:
http://www.autoitscript.com/forum/topic ... ntrol-udf/

Re: [..] Couper le son d'un programme

Posté : mer. 23 oct. 2013 18:19
par Utilisateur 4989 supprimé
J'ai testé ceci :
► Afficher le texte
mais ça n'a pas marché (@error = 0).

Re: [..] Couper le son d'un programme

Posté : mer. 23 oct. 2013 22:22
par jguinch
Tu peux jeter un coup d'oeil sur ce post, peut-être que...

Re: [..] Couper le son d'un programme

Posté : jeu. 24 oct. 2013 11:44
par Utilisateur 4989 supprimé
J'ai fais ceci :
► Afficher le texte
Mais il y a un petit problème. Le logiciel en question que je veux rendre muet peut très bien être "[CLASS:ToolbarWindow32; INSTANCE:6]" ou "[CLASS:ToolbarWindow32; INSTANCE:8]" ou autre chose.
Comment faire pour que le script détecte l'instance du logiciel en question pour le rendre muet et pas les autres logiciels ?

Re: [..] Couper le son d'un programme

Posté : jeu. 24 oct. 2013 12:22
par timmalos
Essayer [CLASS:ToolbarWindow32; TEXT:NomProgramme] au lieu de [CLASS:ToolbarWindow32; INSTANCE:6 ou 8]
Sinon ControlGetText()
Aidez vous de Autoit Windows Info

Re: [..] Couper le son d'un programme

Posté : dim. 27 oct. 2013 16:00
par Utilisateur 4989 supprimé
"[CLASS:ToolbarWindow32; TEXT:NomProgramme]" n'a pas marché.

J'ai essayé ControlGetText() :

Code : Tout sélectionner

If ControlGetText("[TITLE:Mélangeur de volume - Haut-parleurs / Casque (IDT High Definition Audio CODEC); CLASS:#32770]", "", "Static2") = "NomDuProgramme" Then
     Global $pos_volume = ControlGetPos("[TITLE:Mélangeur de volume - Haut-parleurs / Casque (IDT High Definition Audio CODEC); CLASS:#32770]", "", "Static2")
     MsgBox(0,"Position bouton muet du programme en question",$pos_volume[0]+30&","&$pos_volume[1]+172)
EndIf
J'ai réussi à trouver les coordonnées du bouton muet du programme que je veux rendre muet.
Et là je coince : comment à partir de coordonnées peut-on cliquer sur un control ?

Re: [..] Couper le son d'un programme

Posté : lun. 28 oct. 2013 12:29
par mikell
Pourquoi ne pas utiliser directement un ControlClick à la place du ControlGetPos puisque le ControlGetPos fonctionne ?

Code : Tout sélectionner

$Wnd = "[TITLE:Mélangeur de volume - Haut-parleurs / Casque (IDT High Definition Audio CODEC); CLASS:#32770]"
If ControlGetText($Wnd, "", "Static2") = "NomDuProgramme" Then
    ; Global $pos_volume = ControlGetPos($Wnd, "", "Static2")
      ControlClick($Wnd, "", "Static2", "left")
 

Re: [..] Couper le son d'un programme

Posté : mar. 29 oct. 2013 16:09
par Utilisateur 4989 supprimé
Avec ton code, ça clique sur le texte "NomDuProgramme" mais ça ne coupe pas le son du programme.
Ce que j'essayais de faire c'est par le biais des coordonnées du control contenant le nom du programme, obtenir la class et l'instance du control du bouton muet pour ensuite faire un ControlClick sur ce bouton.

Re: [..] Couper le son d'un programme

Posté : jeu. 07 nov. 2013 11:50
par Utilisateur 4989 supprimé
J'ai réussi !

Code : Tout sélectionner

Run("C:\Windows\System32\SndVol.exe", "", @SW_MINIMIZE)
WinWait("Mélangeur de volume - Haut-parleurs / Casque (IDT High Definition Audio CODEC)")

For $idvolume = 1 To 100
    If ControlGetText("[TITLE:Mélangeur de volume - Haut-parleurs / Casque (IDT High Definition Audio CODEC); CLASS:#32770]", "", "[CLASS:ToolbarWindow32; INSTANCE:" & $idvolume & "]") = "Réduire le volume de XXX au minimum" Then
        ControlClick("[TITLE:Mélangeur de volume - Haut-parleurs / Casque (IDT High Definition Audio CODEC); CLASS:#32770]", "", "[CLASS:ToolbarWindow32; INSTANCE:" & $idvolume & "]", "left", 1)
    EndIf
Next
Sujet résolu.