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

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: 8949
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: Boucle sur des fenêtres

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
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
Guest

Re: Boucle sur des fenêtres

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: 8949
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: Boucle sur des fenêtres

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.
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
Guest

Re: Boucle sur des fenêtres  Topic is solved

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: 8949
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: Boucle sur des fenêtres

04 Jun 2021, 11:47

Parfait, cool! :+1: :dance:
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]

Return to “J'ai besoin d'aide”

Who is online

Users browsing this forum: No registered users and 21 guests