2

我的同事似乎在使用我的 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 命令坐标,并在不同的分辨率下对其进行了测试,并且每次点击都转到错误的位置。

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

我不确定坐标是否是问题,这就是我在这里问的原因。

谢谢你。

4

1 回答 1

0

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

但是,窗口的大小或内容可能会根据包括屏幕分辨率在内的多种因素而改变。这取决于应用程序。

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

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

无论采用何种坐标模式,您在脚本中硬编码的任何值都需要考虑应用程序中可能发生的布局变化。同样,这些更改取决于应用程序。


如果系统有多个监视器,并且它们的 DPI(缩放)不同,则系统会“撒谎”除主监视器之外的监视器上的对象坐标,除非检索坐标的程序是每个监视器的 DPI 感知的。这可能会导致 AutoHotkey 出现问题,它不是每个显示器的 DPI 感知的。

于 2019-09-28T01:28:56.327 回答