我的同事似乎在使用我的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命令坐标,并且我在不同的分辨率下测试它,并且每次点击都会转到错误的位置。
然而,我的起始分辨率的常规坐标仍然有效。
我不确定坐标是否是问题,这就是我在这里问的原因。
谢谢。
答案 0 :(得分:0)
不。坐标系或原点不受屏幕分辨率的影响,窗口本身的坐标也不受此影响。
但是,窗口的大小或内容可能会根据许多因素(包括屏幕分辨率)而变化。由应用程序决定。
Window
坐标(AutoHotkey v1中大多数命令的默认坐标)取决于当前系统主题和其他设置,这些设置会影响窗口标题栏和边框的大小。
Client
坐标(AutoHotkey v2的默认设置)受系统之间差异的影响较小,因此建议使用Window
坐标。
无论采用哪种协调模式,您在脚本中的硬编码值都需要考虑到应用程序中布局可能发生的任何变化。再次说明,这些更改取决于应用程序。
如果系统有多个监视器,并且它们都不都具有相同的DPI(缩放),则系统“依赖”主要监视器以外的其他监视器上对象的坐标,除非检索坐标的程序是每个监视器DPI意识。这可能会导致AutoHotkey出现问题,而AutoHotkey并非每个监视器DPI都知道。