Меняются ли относительные координаты окна в зависимости от разрешения?

У моих коллег, похоже, много проблем с использованием моих скриптов AHK, и похоже, что щелчки мышью не щелкают по нужным позициям в активных окнах.

Обе стороны здесь используют Windows 7.

Их разрешение 1600 х 900, где я использую 1280 х 1024.

Я думал, что относительное положение данного окна будет другим, поэтому я попросил своих ИТ-специалистов получить мониторы 16:9 для компьютера рядом с моим. К сожалению, мониторы не поддерживают разрешение 1600 x 900, и когда я заметил, что не проверял координаты на этих мониторах, потому что это было не правильное разрешение.

Я искал другой способ преобразовать координаты в это разрешение и нашел поток, который говорит, что преобразование моих координат так же просто, как:

x1 * 1600/1280 = x2
y1 * 900/1024 = y2

Я применил эту формулу к координатам команды MouseClick и проверил ее на разных разрешениях, и щелчки каждый раз переходят в неправильную позицию.

Тем не менее, обычные координаты из моего начального разрешения все еще работают.

Я больше не уверен, являются ли координаты проблемой, поэтому я здесь и спрашиваю.

Спасибо.

0 ответов

Нет. На систему координат или исходную точку не влияет разрешение экрана, равно как и координаты самого окна.

Однако размер или содержимое окна может изменяться в зависимости от любого количества факторов, включая разрешение экрана. Это зависит от приложения.

Window Координаты (по умолчанию для большинства команд в AutoHotkey v1) зависят от текущей системной темы и других параметров, которые влияют на размер строки заголовка и границ окна.

Client координаты (по умолчанию для AutoHotkey v2) меньше зависят от различий между системами, поэтому рекомендуется Window координаты.

Независимо от режима координат, любые значения, которые вы жестко запрограммируете в скрипте, должны будут учитывать любые изменения в макете, которые могут произойти в приложении. Опять же, эти изменения зависят от приложения.


Если в системе несколько мониторов, и все они не имеют одинакового DPI (масштабирования), система "лжет" о координатах объектов на мониторах, отличных от основного, если только программа, получающая координаты, не поддерживает DPI каждого монитора. Это может вызвать проблемы с AutoHotkey, который не учитывает DPI каждого монитора.

Другие вопросы по тегам