J'essaie d'écrire quelques scripts AutoHotkey simples pour déplacer les fenêtres et j'ai de la difficulté à obtenir les valeurs de taille d'écran correctes. J'essaie d'obtenir la taille de la zone utilisable sur l'écran (généralement la résolution en plein écran moins la barre des tâches, et peut-être toutes les autres fenêtres ancrées comme la barre latérale dans Vista). Aucune des méthodes que j'ai trouvées pour obtenir la largeur de l'écran ne semble fonctionner.Obtenir la zone d'écran disponible dans autohotkey
Aucune des 3 méthodes que j'ai trouvées pour obtenir la taille de l'écran ne me donne les bonnes valeurs. Voici le script de test que je utilise (en cours d'exécution sur XP avec la barre des tâches en bas à sa taille par défaut):
#7::
WinMove A,,0,0,A_ScreenWidth,A_ScreenHeight
return
#8::
;SM_CXMAXIMIZED and SM_CYMAXIMIZED
SysGet, ScreenWidth, 61
SysGet, ScreenHeight, 62
WinMove A,,0,0,ScreenWidth,ScreenHeight
return
#9::
;SM_CXFULLSCREEN and SM_CYFULLSCREEN
SysGet, ScreenWidth, 16
SysGet, ScreenHeight, 17
WinMove A,,0,0,ScreenWidth,ScreenHeight
return
# 7, la fenêtre pour prendre toute la résolution, de sorte qu'il chevauche la barre des tâches. La largeur est supérieure à la résolution (je vois que le bord droit de la fenêtre apparaît sur mon moniteur secondaire) et la hauteur est légèrement trop grande, de sorte que la fenêtre chevauche partiellement la zone de la barre des tâches. On dirait que c'est correct, sauf pour ne pas prendre en compte les décorations de fenêtre sur les bords.
# 9 semble avoir la bonne largeur, mais la hauteur est trop courte. Il semble que l'on soustrait la hauteur de la barre des tâches de la hauteur de la résolution, mais en soustrayant 30 autres pixels de celle-ci.
Je pourrais juste utiliser ce que j'ai dans # 9 et ajouter 30 à la hauteur que je reçois, mais cela ressemble trop à un hack qui casserait dans d'autres configurations. Il semble qu'il doit y avoir un moyen d'obtenir la taille d'écran disponible correctement, mais je ne peux pas le trouver dans AutoHotkey.
Pour référence, cela semble me donner ce que je dois en Java:
Toolkit.getDefaultToolkit().getScreenSize();
Ces fonctions sont très utiles. Je les ai juste utilisés sous Windows 7 et ils fonctionnent magnifiquement. Merci. À votre santé! –