我希望能够确定光标所在的监视器。理想情况下,这将是任何数量/配置的监视器的动态解决方案。
我认为,仅读取每个监视器的边界并测试光标是否在所述边界内将很简单。
CoordMode, Mouse, Screen
GetMonitorMouse()
{
MouseGetPos, x, y
SysGet, Mon1, Monitor, 1
SysGet, Mon2, Monitor, 2
SysGet, Mon3, Monitor, 3
if(x >= Mon1Left && x <= Mon1Right && y >= Mon1Bottom && y <= Mon1Top)
{
TrayTip,,monitor1, 1, 16
SetTimer, TurnOffTrayTip, 500
}
else if(x >= Mon2Left && x <= Mon2Right && y >= Mon2Bottom && y <= Mon2Top)
{
TrayTip,,monitor2, 1, 16
SetTimer, TurnOffTrayTip, 500
}
else if(x >= Mon3Left && x <= Mon3Right && y >= Mon3Bottom && y <= Mon3Top)
{
TrayTip,,monitor3, 1, 16
SetTimer, TurnOffTrayTip, 500
}
else
{
TrayTip,,monitor unknown %x%-%y%, 1, 16
SetTimer, TurnOffTrayTip, 500
SplashTextOn, 400, 300, CursorMonitor, monitor unknown %x%-%y% # %Mon1top% ~ %Mon1Bottom% $ %Mon1Left% ~ %Mon1Right%
}
sleep, 3000
GetMonitorMouse()
}
GetMonitorMouse()
TurnOffTrayTip:
TrayTip
return
但是,我不理解SysGet返回的界限。底部边界是任意的。例如,Mon1Bottom
是-8
,而Mon2Bottom是352
。
下图是显示Windows看到的三台显示器的布局的图像。以绿色显示了SysGet返回的边界(顶部,底部,左侧,右侧)。用红色显示显示器的实际尺寸。
我不知道如何测试光标所在的监视器。有人知道我可以修复脚本吗?我正在使用Windows 10。