[R] Couper le son d'un programme

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Utilisateur 4989 supprimé
Status : Hors ligne

[R] Couper le son d'un programme

#1

Message 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.
Modifié en dernier par Utilisateur 4989 supprimé le jeu. 07 nov. 2013 11:50, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#2

Message 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/
Utilisateur 4989 supprimé
Status : Hors ligne

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

#3

Message par Utilisateur 4989 supprimé »

J'ai testé ceci :
► Afficher le texte
mais ça n'a pas marché (@error = 0).
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#4

Message par jguinch »

Tu peux jeter un coup d'oeil sur ce post, peut-être que...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Utilisateur 4989 supprimé
Status : Hors ligne

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

#5

Message 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 ?
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#6

Message par timmalos »

Essayer [CLASS:ToolbarWindow32; TEXT:NomProgramme] au lieu de [CLASS:ToolbarWindow32; INSTANCE:6 ou 8]
Sinon ControlGetText()
Aidez vous de Autoit Windows Info
Utilisateur 4989 supprimé
Status : Hors ligne

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

#7

Message 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 ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#8

Message 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")
 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Utilisateur 4989 supprimé
Status : Hors ligne

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

#9

Message 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.
Utilisateur 4989 supprimé
Status : Hors ligne

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

#10

Message 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.
Répondre