1

Тема: 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)


Что я не учитываю и как абсолютно точно "бить" по точкам?
Заранее спасибо!

2

Re: AHK, координаты окон

Проверил в другой проге: на Delphi создал два точно таких же окна и на Win 7 они расположились ожидаемо, а на Win 10 - не так и отработало все точно также, как и на AHK. Значит AHK здесь ни при чем и топик можно закрывать. Смотреть надо в сторону Windows.