Тема: AHK, координаты окон
Доброе время суток!
Вот с чем столкнулся на AHK (Windows 10).
Открыл два окна, дал им размеры, ну, например, обоим 700 на 700 пикселей.
Первое окно задвинул в точку с координатами 0,0, а второе с координатами 701, 0
Ожидал, что два окна будут плотно прижаты друг к другу и первое окно своими краями прикоснется строго и четко к краям рабочего стола.
Но не тут то было!
Первое окно четко расположилось только по координате Y. А по координате X окно оказалось смещено вправо на несколько пикселей!
Второе окно тоже четко висело сверху, но между окнами по оси X был небольшой зазор! Вроде бы даже точно такой же, как и между краем рабочего стола и первым окном по оси X!
На Windows 7 такого не замечал!
И утилиты: AutoIt Windows Info и AHK Windows Spy показали четко именно те координаты и размеры окон, которые я дал.
Я не знаю, что именно подозревать и почему так происходит. В Windows 10 каким-то образом пиксели масштабируются? Я располагаю два окна одно за другим, а между ними - "пустота" образуется.
Вот, как я это делал:
#Persistent
#NoEnv
SetTitleMatchMode, 2
SetMouseDelay, 64
SetKeyDelay, 10
CoordMode, Mouse, Screen
...
; Следующая функция помещает указанное окно в центр экрана:
CenterWindow(winTitle)
{
WinGetPos,,, Width, Height, %winTitle%
WinMove, %winTitle%,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2)-(Height/2)
}
...
runApplication(winTitle, appPath, width = -1, height = -1, left = -1, top = -1)
{
IfWinExist, % winTitle
{
WinActivate
}
else
{
Run %appPath%
WinWait, % winTitle
WinActivate
}
if width >=0 and height >= 0 and left >= 0 and top >= 0
{
winmove,,, left, top, width, height
}
else
{
CenterWindow(winTitle)
}
}
И вот она - беда с окнами: они не "садятся" вплотную и не "прижимаются" к краю рабочего стола:
runTotalCommander(0,0, 700, 700)
IfWinExist, ahk_class TTOTAL_CMD
{
WinActivate
ControlClick, Edit1, ahk_class TTOTAL_CMD
SendInput cd D:\Projects...{ENTER}
}
runFarManager(701,0, 700, 700)
Что я не учитываю и как абсолютно точно "бить" по точкам?
Заранее спасибо!