Estoy intentando escribir algunas secuencias de comandos de AutoHotkey para mover ventanas, y tengo problemas para obtener los valores de tamaño de pantalla correctos.Obtener área de pantalla disponible en autohotkey
Estoy tratando de obtener el tamaño del área utilizable en la pantalla (generalmente la resolución de pantalla completa menos la barra de tareas, y tal vez cualquier otra ventana acoplada como la barra lateral en Vista). Ninguno de los métodos que he encontrado para obtener el ancho de la pantalla parece funcionar.
Ninguno de los 3 métodos que encontré para obtener el tamaño de pantalla me da los valores correctos. Aquí está la escritura de la prueba que estoy usando (que funciona en XP con la barra de tareas en la parte inferior con el tamaño predeterminado):
#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 hace que la ventana para ocupar toda la resolución, por lo que se superpone a la barra de tareas.
# 8 hace que el ancho sea mayor que la resolución (veo el borde derecho de la ventana en mi monitor secundario) y la altura es demasiado grande, por lo que la ventana se solapa parcialmente con el área de la barra de tareas. Parece que esto es correcto, excepto por no tener en cuenta las decoraciones de las ventanas en los bordes.
# 9 parece tener el ancho correcto, pero la altura es demasiado corta. Parece que resta la altura de la barra de tareas desde la altura de la resolución, pero luego resta otros 30 píxeles de ella.
Podría simplemente usar lo que tengo en el n. ° 9 y sumar 30 a la altura que obtengo, pero se siente como un truco que se rompería en otras configuraciones. Parece que tiene que haber una forma de obtener el tamaño de pantalla disponible correctamente, pero no puedo encontrarlo en AutoHotkey.
Como referencia, esto parece dame lo que necesito en Java:
Toolkit.getDefaultToolkit().getScreenSize();
Estas funciones son muy útiles. Solo los usé en Windows 7 y funcionan muy bien. Gracias. ¡Aclamaciones! –