AutoHotkey MouseMove未正确居中
我正在运行下面的代码,并且当我点击逗号时,我期望鼠标移动到当前活动窗口的中心.....相反,它正在移动到屏幕上的不同点,取决于窗口在屏幕上的位置。当窗口位于左上角(x = 0,y = 0)时,它只能将鼠标正确居中。AutoHotkey MouseMove未正确居中
#NoEnv
SendMode Input
#WinActivateForce
Sysget, Mon2, Monitor, 2
,::
WinGetActiveStats, Title, Width, Height, X, Y
{
MsgBox, The active window "%Title%" is %Width% wide`, %Height% tall`, and positioned at %X%`,%Y%.
;center_x:=X+(Width*.5)
;center_y:=Y+(Height*.5)
MouseMove, X+(Width*.5), Y+(Height*.5), 90
}
Return
我会确定宽度和高度是窗口的实际尺寸而不是屏幕分辨率。然后检查X和Y以确保它们是活动窗口的实际左上角。
如果宽度和高度不是来自实际窗口,即屏幕大小,那么这是预期的行为。也许你可以向我们展示调用函数,以便更好地了解这些参数来自哪里。
的问题是,MousMove默认使用的窗口的坐标,所以我改变鼠标移动线以下:
MouseMove, Width*.5, Height*.5
一切都很好。
如果你已经解决了你的问题,你应该将其标记为已解决。 – bgmCoder 2014-04-06 15:50:53
以下脚本会将鼠标移动到双屏幕系统上的活动窗口。
直到我进入睡眠线后,我才能开始工作,WinGetPos
在窗口移动之前获取信息。
~#+right::
~#+left::
Sleep,1000
WinGetPos, X, Y, width, height, A
center_x:=width/2
center_y:=height/2
MouseMove,center_x,center_y,
return
检查出CoordMode
在文档中。
将各种命令的坐标模式设置为相对于 活动窗口或屏幕。
CoordMode,工具提示|像素|鼠标|插入符|菜单[,屏幕|窗口|客户端]
默认CoordMode
是Screen
这就是为什么你会得到两个不同的位置。将CoordMode
设置为Window
以确保您的鼠标居中工作在活动窗口上。
您可以通过在脚本的自动执行部分中调用它来为整个脚本进行设置。
Trey, 根据以下链接,我使用的所有变量都应对应于活动窗口位置/尺寸。 http://autohotkey.free.fr/docs/commands/WinGetActiveStats.htm MsgBox显示这些文件被正确读取,但Mousemove仍然没有将鼠标移动到正确的位置。 – user242113 2010-01-02 03:03:37