Boucle sur des fenêtres Topic is solved

Poser vos questions de programmation en AutoHotkey
Madlax
Posts: 1
Joined: 04 Jun 2021, 04:16

Boucle sur des fenêtres

Post by Madlax » 04 Jun 2021, 07:14

Bonjour à tous,

C'est le première fois que je poste ici, donc je suis désolé si le sujet fait redite mais je n'arrive pas à trouver de solution par moi-même...

J'ai un script qui a pour objectif de mettre en mute/unmute mes discussions sur Teams :

Code: Select all

; Teams Global Mute Toggle
F6::
if WinExist("ahk_exe Teams.exe") {
; Capture current active window so we can switch back later
WinGet, winID ,, A ; <-- need to identify window A = active

; Switch to Teams and send the mute toggle "<Ctrl><Shift>m"
WinActivate, ahk_exe Teams.exe
Send ^+m

; Switch back to the original active application
WinActivate, ahk_id %winID%
}
return
Le seul problème, c'est qu'il ne marche que si la dernière fenêtre Teams à être ouverte est celle de la discussion active.

J'aimerais améliorer ce script pour qu'il fasse la manip sur toutes les fenêtres Teams existantes, genre :
1. Regarde la fenêtre active et garde la en mémoire
2. Ouvre la première fenêtre Teams et fait le raccourci pour mute/unmute.
2'. Boucle sur toutes les fenêtres Teams pour faire ce même raccourci
3. Réactive la fenêtre active du début.

Je ne sais pas faire le 2'... :headwall:

Merci pour votre aide :D ,

Bonne journée à tous.

Madlax.

User avatar
joedf
Posts: 8039
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Boucle sur des fenêtres

Post by joedf » 04 Jun 2021, 08:17

WinActivate, ahk_exe Teams.exe ne fonctionne pas?
Essayer peut-etre ceci:

Code: Select all

SetTitleMatchMode, 2
WinActivate, | Microsoft Teams

Guest

Re: Boucle sur des fenêtres

Post by Guest » 04 Jun 2021, 09:30

Code: Select all

WinActivate, ahk_exe Teams.exe
ça fonctionne bien, mais ça n'ouvre que la dernière fenêtre Teams utilisées.

Sur Teams tu peux avoir x fenêtres, 1 par discussion + la générale. Et pour couper le micro sur la discussion en cours, il faut forcément activer la bonne fenêtre.
Donc j'aimerais boucler sur toutes les fenêtres, comme ça je suis certain d'effectuer l'action sur la bonne fenêtre.
Je ne sais pas si je suis clair :?

User avatar
joedf
Posts: 8039
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Boucle sur des fenêtres

Post by joedf » 04 Jun 2021, 10:06

Tu peux boucler les fenêtres Teams de cette façon :+1:

Code: Select all

; Assure toi d'avoir ceci avant tes raccourcis...
GroupAdd, MesFenetresTeams , ahk_exe Teams.exe

#+T::
; Veuillez voir https://www.autohotkey.com/docs/commands/GroupActivate.htm
GroupActivate, MesFenetresTeams
return
Dans cet exemple, chaque fois que tu fais Win+Shift+T, la prochaine fenêtre est activée.

Tu pourrais utiliser un Loop pour executer le muet pour chaque fenêtre.
Avec ceci, tu peux obtenir le nombre de fenêtres Teams:

Code: Select all

WinGet, NombreDeFenetresTeams, List , ahk_exe Teams.exe
info: https://www.autohotkey.com/docs/commands/WinGet.htm#List

Ensuite, NombreDeFenetresTeams1, NombreDeFenetresTeams2, ... contient les "winID" / hwnd de chaque fenêtre.

Guest

Re: Boucle sur des fenêtres  Topic is solved

Post by Guest » 04 Jun 2021, 10:58

ça marche parfaitement, merci beaucoup Joedf ! :superhappy:

Je mets le résultat pour ceux que ça pourrait intéresser :D

Code: Select all

; Teams Global Mute Toggle
F6::
if WinExist("ahk_exe Teams.exe") {
	; Capture current active window so we can switch back later
	WinGet, winID ,, A ; <-- need to identify window A = active

	;Construit un groupe de toutes les fenêtres Teams
	GroupAdd, MesFenetresTeams , ahk_exe Teams.exe

	;Obtient le nombre de fnêtres Teams
	WinGet, NombreDeFenetresTeams, List , ahk_exe Teams.exe

	;Boucle sur le nombre de fenêtres Teams pour appliquer le raccourci micro sur chacune
	Loop, %NombreDeFenetresTeams% {
		;Active une fenêtre et applique le raccourci de mute
		GroupActivate, MesFenetresTeams
		Send ^+m
	}

	; Switch back to the original active application
	WinActivate, ahk_id %winID%
}
return

User avatar
joedf
Posts: 8039
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Boucle sur des fenêtres

Post by joedf » 04 Jun 2021, 11:47

Parfait, cool! :+1: :dance:

Post Reply

Return to “J'ai besoin d'aide”