N'est-il pas ultra-ennuyeux de voir, du moins sous Windows, n'importe quelle fenêtre apparaître n'importe où sur l'écran? Ce caractère aléatoire quotidien vous énerve-t-il et vous préférez avoir plus de contrôle sur le placement à l'écran de vos fenêtres? Eh bien, maintenant vous pouvez, grâce à AutoHotKey.
Dans ce tutoriel, nous verrons comment vous pouvez résoudre ce problème avec un script AutoHotKey. Nous le construirons pour qu'il bouge quelconque fenêtre au centre de votre écran en appuyant sur une touche. Cela semble doux? Voyons comment c'est fait !
Comment configurer un raccourci clavier de centrage de fenêtre avec AutoHotKey
La moitié de la bataille lors de la création d'un script consiste à déterminer comment il fonctionnera avant même de taper un seul caractère. Alors, faisons un tel plan d'action en langage simple que nous "muterons" ensuite dans un script.
Le "problème" de Windows a
Windows (comme dans "les rectangles sur nos écrans", pas le système d'exploitation) a tendance à apparaître n'importe où sur l'écran. C'est distrayant, et cela peut aussi être ennuyeux quand cela se produit à plusieurs reprises. Surtout lorsqu'il s'agit de plusieurs demandeurs apparaissant à différents endroits, attendant une entrée de l'utilisateur.
La solution au problème
En plus d'envoyer des frappes et des clics de souris à n'importe quelle fenêtre, AutoHotKey peut également les manipuler. Nous avons vu dans le passé comment vous pouvez utilisez AutoHotKey pour épingler les fenêtres "toujours au premier plan" à l'aide d'un raccourci clavier. Cette fois, cependant, nous tirerons parti des capacités de manipulation de fenêtre d'AutoHotKey pour :
- "Lire" l'ID de la fenêtre active.
- "Lire" également ses dimensions (largeur & hauteur).
- "Lire" les dimensions du moniteur.
- Combinez les dimensions du moniteur et de la fenêtre pour calculer les coordonnées optimales pour présenter ladite fenêtre au centre de l'écran.
- Déplacez la fenêtre vers ces coordonnées.
Enfin, nous allons mapper ce qui précède à un raccourci. De cette façon, vous pouvez l'appeler "à la demande" au lieu de l'appliquer sur tout Windows - qui pourrait interférer avec les applications et les jeux en plein écran.
Notez que dans ce tutoriel, nous plongerons directement dans AutoHotKey. Si vous ne le connaissez pas et que vous souhaitez en savoir plus au préalable, consultez notre guide rapide AutoHotKey pour les débutants.
Tout d'abord, configurer le raccourci clavier
Nous avons mentionné comment nous allons mapper la fonction que nous allons créer sur un raccourci. Cependant, il est probablement préférable de commencer par cette partie pour l'éliminer.
Commencez par télécharger le programme d'installation à partir de Site officiel d'AutoHotKey. Optez pour la version "actuelle" au lieu de la version bêta v2 ou de la version 1.0 obsolète. Ensuite, installez-le sur votre PC.
Lancez l'Explorateur de fichiers (le moyen le plus rapide consiste à utiliser la combinaison de touches Windows + E) et accédez au chemin où vous souhaitez créer votre script. Avec AutoHotKey installé, de nouvelles options apparaîtront dans le menu contextuel. Alors, faites un clic droit sur l'espace vide de la fenêtre de l'explorateur de fichiers et choisissez Nouveau > Script AutoHotKey.
Donnez un nom au fichier de votre script, puis faites un clic droit dessus et Éditer ce. Si vous n'utilisez pas une application d'édition de texte compatible avec le code, comme Visual Studio Code ou Notepad++, utilisez le Bloc-notes Windows. Évitez les éditeurs comme Wordpad, qui pourraient ajouter une syntaxe inutile (pour le but) à votre "code".
Dans l'éditeur de votre choix, vous verrez que votre script AutoHotKey contient déjà des lignes pré-remplies en haut. Ils sont là pour des raisons de stabilité et de compatibilité. Ils sont modifiables, mais laissez-les tels quels pour ce didacticiel.
"Déplacez" deux ou trois lignes en dessous d'eux et entrez le raccourci qui lancera votre fonction. Vous pouvez créer une combinaison de touches en utilisant "+" pour Shift, "^" pour CTRL, "!" pour Alt, et "#" pour la touche Windows, ainsi que n'importe quelle touche "normale" du clavier (lettres et chiffres).
Par exemple, pour que la combinaison CTRL + Y lance votre script, utilisez :
^y ::
Le double ":" revient à dire "Hé, AutoHotKey, veuillez mapper la chaîne ou la combinaison de touches à gauche sur tout ce qui se trouve à droite".
"Déplacez" deux ou trois lignes en dessous en appuyant sur Entrée, et tapez "retour", ce qui marquera la fin de la fonction particulière. Le résultat complet devrait ressembler à ce qui suit :
^y ::
; Cette est un commentaire.
retourner
Le "; Ceci est un commentaire." La ligne est précisément cela, un commentaire dans le "code" du script qu'AutoHotKey n'exécutera pas. Il est là à des fins de documentation pour marquer l'endroit où nous entrerons le "code" du script dans les étapes suivantes.
Si vous avez suivi notre guide sur créer des raccourcis clavier spécifiques à l'application avec AutoHotKey dans le passé, dans ce cas... ne le faites pas. Vous voulez que votre raccourci clavier de centrage de fenêtre soit "global" pour centrer quelconque fenêtre de quelconque application. Si vous le "liez" à une application particulière, il n'agira que sur les fenêtres de cette application.
Obtenir les détails de la fenêtre active
Nous voulons que notre raccourci agisse sur la fenêtre active, et nous avons également besoin de ses dimensions pour nos calculs. Nous pouvons trouver ces détails avec ce qui suit :
WinGetTitle, ActiveWindowTitle, A
WinGetPos Largeur, Hauteur, %ActiveWindowTitle%
Remplacez la ligne de commentaire que nous avons ajoutée au script dans la section précédente par les deux lignes ci-dessus. Le résultat?
- La première ligne saisit le titre de la fenêtre active.
- La deuxième ligne lit sa largeur et sa hauteur et les associe aux mots/variables "Largeur" et "Hauteur", que nous utiliserons ensuite pour nos calculs.
Nous avons les détails de la fenêtre active, mais nous avons également besoin des dimensions de la zone visible du moniteur pour atteindre notre objectif. Heureusement, il est encore plus facile de les découvrir.
Qu'en est-il de la zone de surveillance principale ?
Nous n'avons pas besoin de commandes supplémentaires pour trouver la largeur et la hauteur de notre moniteur principal. AutoHotKey est livré avec deux variables prédéfinies qui contiennent déjà ces informations pour nous: "A_ScreenWidth" et "A_ScreenHeight".
Ainsi, lorsque vous les voyez dans la section suivante, ils "contiennent" déjà la largeur et la hauteur du moniteur principal. Rien n'est nécessaire pour leur attribuer les bonnes valeurs. Ainsi, nous pouvons les utiliser directement dans nos calculs.
Temps pour calculer la position cible
Nous pouvons inclure les calculs directement dans les points du script où nous en avons besoin. Pourtant, c'est plus facile et meilleur pour la lisibilité si nous les mappons à deux variables et alors utiliser ces variables dans notre script.
Alors, allons-y pour "TargetX" comme variable qui contiendra les coordonnées horizontales et "TargetY" comme une avec les coordonnées verticales où nous devrions déplacer la fenêtre pour la faire apparaître au centre de la filtrer.
TargetX := (A_ScreenWidth/2)-(Largeur/2); Ici on calcule l'horizontale la fenêtre cibler...
TargetY := (A_ScreenHeight/2)-(Height/2); ...et ici la verticale.
Déchiffrons ces lignes en langage clair :
- "TargetX" et "TargetY" sont les deux variables.
- ":=" informe AutoHotKey que les variables doivent être égales aux résultats des calculs sur la droite, et que ces résultats doivent être traités comme des nombres.
- "(A_ScreenWidth/2)" divise la largeur totale du moniteur par deux.
- "(Largeur/2)" fait de même pour la largeur de la fenêtre active.
Avec ce qui précède, nous soustrayons la moitié de la largeur de la fenêtre active de la moitié de la largeur de l'écran. Ce qui reste est l'espace à gauche de la fenêtre - du côté gauche de l'écran jusqu'à l'endroit où la fenêtre devrait apparaître. La deuxième ligne fait la même chose mais pour la hauteur.
Maintenant pour repositionner la fenêtre
Équipés des connaissances toutes-puissantes acquises grâce aux commandes mystiques que nous avons vues ci-dessus, nous pouvons désormais fabriquer notre incantation magique qui complétera le rituel de téléportation de la fenêtre. Ou, en langage clair, utilisez la commande "WinMove" d'AutoHotKey pour déplacer les fenêtres sur l'écran.
WinMove s'attend à ce que nous le « nourrissions » d'au moins trois informations pour faire son travail: le titre de la fenêtre ciblée et les coordonnées où la déplacer. Puisque nous avons déjà mappé ces informations sur des variables, la commande est aussi simple que :
WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%
Au dessus:
- "WinMove" est la commande AutoHotKey qui déplace une fenêtre.
- "%ActiveWindowTitle%" est la variable où le titre de la fenêtre active est mappé.
- "%TargetX%" et "%TargetY%" sont les coordonnées horizontales et verticales où déplacer la fenêtre.
Vous pouvez également redimensionner les fenêtres avec WinMove, ignorer celles avec des piqûres de texte particulières dans leurs titres ou leur contenu, etc. Étant donné que ces fonctionnalités sortent du cadre de cet article, vérifiez Documentation officielle d'AutoHotKey sur la commande WinMove pour en savoir plus sur eux.
Le scénario final
Enfin, nous atteignons la partie la plus difficile de notre voyage. Préparez-vous pour la prochaine étape qui s'attend à ce que vous sauvegardiez le script et, eh bien... Exécuter.
Oui, c'était ça - le script est terminé, et il n'y a rien d'autre à faire que de l'essayer. Utilisez le raccourci que vous avez défini et toute fenêtre active se déplacera au centre de votre écran.
Le fichier de script final, tel qu'il est ouvert dans un éditeur de texte, devrait ressembler à ceci :
#PasEnv; Recommandé pour les performances et la compatibilité avec les futures versions d'AutoHotkey.
; #Prévenir; Activez les avertissements pour vous aider à détecter les erreurs courantes.
Entrée SendMode; Recommandé pourNouveau scripts en raison de sa vitesse et de sa fiabilité supérieures.
SetWorkingDir %A_ScriptDir%; Garantit un répertoire de démarrage cohérent.
^y ::
WinGetTitle, ActiveWindowTitle, A; Obtenir la fenêtre active'le titre de "ciblage" cela / agir dessus.
WinGetPos Largeur, Hauteur, %ActiveWindowTitle%; Obtenez l'actif la fenêtreposition de, utilisé pour nos calculs.
TargetX := (A_ScreenWidth/2)-(Largeur/2); Calculez la cible horizontale où nous allons déplacer le la fenêtre.
TargetY := (A_ScreenHeight/2)-(Hauteur/2); Calculer le placement vertical de la la fenêtre.WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%; Bouge le la fenêtre aux coordonnées calculées.
retourner
Notez que vous pouvez copier le script ci-dessus, le coller dans le Bloc-notes ou un éditeur de texte similaire et l'enregistrer avec une extension AHK. Ensuite, "exécutez-le", avec AutoHotKey installé, pour centrer n'importe quelle fenêtre chaque fois que vous appuyez sur CTRL + Y. Si vous n'aimez pas ce raccourci, ajustez la ligne "^y ::" sur une combinaison de touches différente. Par example, !+c ::
mapperait la fonction à la combinaison de touches Maj + Alt + C.
Titre bonus
Pour votre commodité, nous avons décidé de conjurer et d'inclure un script secondaire qui sera utile à ceux qui ont des configurations à double moniteur.
Pour garder cet article rationalisé, nous avons plutôt inclus des informations sur le fonctionnement du script sous forme de commentaires. Vous pouvez les supprimer de votre itération.
La petite histoire de la façon dont il diffère du script ci-dessus est que nous ajoutons également une variable PositionToggle et une "logique IF". Nous les utilisons ensuite pour "faire défiler" la fenêtre entre les moniteurs. Nous devons noter que c'est une solution inélégante et "hack-y" au problème. Cependant, nous l'avons préféré à un code plus rationalisé car cette approche est plus facile à comprendre et à modifier pour tous ceux qui ne sont pas familiers avec AutoHotKey.
#PasEnv; Recommandé pour les performances et la compatibilité avec les futures versions d'AutoHotkey.
; #Prévenir; Activez les avertissements pour vous aider à détecter les erreurs courantes.
Entrée SendMode; Recommandé pourNouveau scripts en raison de sa vitesse et de sa fiabilité supérieures.
SetWorkingDir %A_ScriptDir%; Garantit un répertoire de démarrage cohérent.
PositionToggle = 1; Utiliser un Numérocomme une bascule pour marquage sur qui surveillent la la fenêtre devrait apparaître.
^y ::
WinGetTitle, ActiveWindowTitle, A
WinGetPos Largeur, Hauteur, %ActiveWindowTitle%Si PositionToggle = 1; Vérifier l'état de la bascule et "faire qu'y a-t-il entre les accolades" si c'est Positionnerpour1pour notre moniteur principal.
{
CibleX := (A_ScreenWidth/2)-(Width/2)
CibleY := (A_ScreenHeight/2)-(Height/2)
PositionToggle = 2; "Feuilleter" la bascule de sorte que si nous réutilisons le raccourci clavier, notre fenêtre active se déplacera vers le deuxième moniteur.
}
Sinon Si PositionToggle = 2; Avons-nous déjà utilisé le raccourci clavier, "pichenette" le numéro de bascule vers le deuxième moniteur? Ensuite, le script devrait plutôt faire ce que's entre les accolades suivantes au lieu de celles ci-dessus.
{
SysGet, Mon2, moniteur, 2; Obtenez le deuxième moniteur'les détails
Mon2Width := Mon2Right - Mon2Left; Calculer le deuxième moniteur's largeur réelle.
Mon2Height := Mon2Bottom - Mon2Top; Calculer le deuxième moniteur'sa hauteur réelle.TargetX := (Mon2Width/2)-(Width/2)+A_ScreenWidth; Calculez où déplacer la fenêtre. Notez que nous ajoutons également le moniteur principal's largeur puisque AutoHotKey peut't déplacer les fenêtres sur des moniteurs individuels, mais sur leurs écrans combinés. "surface".
CibleY := (Mon2Height/2)-(Height/2)+Mon2Top; Calculez la cible verticale optimale pour déplacer la fenêtre sur le deuxième moniteur. Comme ci-dessus, le deuxième moniteur's les détails verticaux sont détectés par rapport au moniteur principal. Ainsi, nous devons faire preuve de créativité pour obtenir une cible optimale en reconnaissant comment le deuxième moniteur'le top n'est pas't égal à 0 (comme le primaire's).PositionToggle = 1; Faites basculer la bascule vers l'arrière pour que si nous réutilisons le raccourci clavier, le la fenêtre reviendra au moniteur principal.
}WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%; L'action réelle, déplaçant l'actif la fenêtre à nos coordonnées calculées.
retourner
Centrer une fenêtre avec une clé, le moyen le plus simple
Et maintenant, vous avez terminé! Si tout fonctionne bien, vous pouvez maintenant utiliser votre raccourci clavier nouvellement configuré pour centrer une fenêtre à tout moment.
Trouvez où vous perdez votre temps sur Windows avec AutoHotKey
Lire la suite
Rubriques connexes
- les fenêtres
- Windows 10
- Windows 11
- AutoHotkey
- Personnalisation de Windows
A propos de l'auteur
La vraie vie d'OK a commencé vers l'âge de 10 ans, lorsqu'il a eu son premier ordinateur - un Commodore 128. Depuis lors, il fait fondre les touches en tapant 24 heures sur 24, 7 jours sur 7, essayant de diffuser The Word Of Tech à toute personne suffisamment intéressée pour écouter. Ou plutôt lire.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner