Sto provando a scrivere alcuni semplici script AutoHotkey per spostare le finestre, e ho problemi a ottenere i valori di dimensione dello schermo corretti.Ottieni area dello schermo in autohotkey
Sto cercando di ottenere la dimensione dell'area utilizzabile sullo schermo (generalmente la risoluzione a schermo intero meno la barra delle applicazioni e forse qualsiasi altra finestra ancorata come la barra laterale in Vista). Nessuno dei metodi che ho trovato per ottenere la larghezza dello schermo sembra funzionare.
Nessuno dei 3 metodi che ho trovato per ottenere le dimensioni dello schermo mi stanno dando i valori corretti. Ecco lo script di test che sto usando (in esecuzione su XP con barra delle applicazioni in basso alla sua dimensione predefinita):
#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 fa sì che la finestra per prendere l'intera risoluzione, in modo che si sovrappone alla barra delle applicazioni.
# 8 fa sì che la larghezza sia maggiore della risoluzione (vedo il bordo destro della finestra visualizzato sul mio monitor secondario) e l'altezza è leggermente troppo grande, quindi la finestra si sovrappone parzialmente all'area della barra delle applicazioni. Sembra che questo sia corretto tranne che non tenendo conto delle decorazioni della finestra ai bordi.
# 9 sembra avere la larghezza corretta, ma l'altezza è troppo breve. Sembra che stia sottraendo l'altezza della barra delle applicazioni dall'altezza della risoluzione, ma poi sottraendo altri 30 pixel da esso.
Potrei semplicemente usare quello che ho in # 9 e aggiungere 30 all'altezza che ottengo, ma mi sembra troppo simile a un hack che si spezzerebbe in altre configurazioni. Sembra che ci debba essere un modo per ottenere correttamente le dimensioni dello schermo disponibili, ma non riesco a trovarlo in AutoHotkey.
Per avere un riferimento, questo sembra darmi quello che mi serve in Java:
Toolkit.getDefaultToolkit().getScreenSize();
Queste funzioni sono molto utili. Li abbiamo appena usati con Windows 7 e funzionano magnificamente. Grazie. Saluti! –