窗口的相对坐标是否取决于分辨率?

问题描述 投票:2回答:1

我的同事们在使用我的AHK脚本时似乎遇到很多麻烦,听起来MouseClicks不在活动窗口中单击正确的位置。

双方都使用Windows 7。

它们的分辨率为1600 x 900,而我使用的是1280 x 1024。

我以为给定窗口的相对位置会有所不同,所以我让IT人员今天为我旁边的计算机安装了16:9显示器。不幸的是,这些显示器不支持1600 x 900分辨率,并且当我注意到我没有检查那些显示器的坐标时,因为它的分辨率不正确。

我正在寻找另一种将坐标转换为该分辨率的方法,并且发现一个线程说转换我的坐标很简单:

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

我将此公式应用于MouseClick命令坐标,并以不同的分辨率对其进行了测试,每次单击都将错误地定位到了错误的位置。

但是,从我的起始分辨率开始的常规坐标仍然有效。

我不知道坐标是否是问题,这就是为什么我在这里问。

谢谢。

windows-7 autohotkey screen-resolution active-window
1个回答
0
投票

否。坐标系或原点不受屏幕分辨率的影响,窗口本身的坐标也不受此影响。

但是,窗口的大小或内容可能会根据包括屏幕分辨率在内的许多因素而变化。由应用程序决定。

[Window坐标(AutoHotkey v1中大多数命令的默认值)取决于当前系统主题和其他设置,这些设置会影响窗口标题栏和边框的大小。

[Client坐标(AutoHotkey v2的默认值)受系统之间差异的影响较小,因此建议在Window坐标上使用。

无论采用哪种协调模式,您在脚本中的硬编码所需要的任何值都必须考虑到应用程序中布局可能发生的任何变化。再次说明,这些更改取决于应用程序。


[如果系统具有多个监视器,并且它们都没有相同的DPI(缩放),则系统“依赖”主要监视器以外的其他监视器上对象的坐标,除非检索坐标的程序是每个监视器DPI知道的。这可能会导致AutoHotkey出现问题,而AutoHotkey则不了解每个监视器的DPI。

© www.soinside.com 2019 - 2024. All rights reserved.