# MouseGetPos

返回鼠标的当前位置，以及鼠标当前悬停的窗口和控件（可选）。

MouseGetPos, [OutputVarX, OutputVarY, OutputVarWin, OutputVarControl, 1|2|3]

#### 参数

OutputVarX/Y | 这两个变量存储了当前鼠标的横坐标和纵坐标。坐标默认相对于当前窗口，需要的话可以使用 CoordMode/坐标模式 来更改屏幕的坐标相对位置。
OutputVarWin | 这个变量存储了当前鼠标悬停的窗口的 unique ID number/唯一ID ，如果无法检测到窗口，则该变量为空。 即使窗口未处于激活状态，仍能获取它的信息。不过隐藏窗口无法被侦测到。
OutputVarControl | 这个变量存储了当前鼠标悬停的控件的名称（ClassNN）。如果无法检测到控件，则该变量为空。 控件的名称和使用 Window Spy（v1.0.14版以上）所获取的控件名称是一样的（可能和老版本的 Window Spy 不一样）。不过和 Window Spy 不同的是，使用 MouseGetPos 检测控件不需要该控件所在的窗口处于激活状态。
1|2|3 | 如果省略了，默认值是 0 。否则，可以按如下所示的功能指定一个值： 1：使用一种更简单的方式来获取 OutputVarControl 。这种方式在多文档界面（MDI）的程序（例如 SysEdit 或 TextPad ）中可以准确的获取激活或置顶的子窗口信息。但是，它对于其它的情况，例如获取 GroupBox/控件组 中的控件，就不那么准确了。 2 [v1.0.43.06+]：在 OutputVarControl 中存储 control's HWND/窗口句柄 而不是 ClassNN。 3 [v1.0.43.06+]：同时包含 1 和 2 的功能。

#### 注意

如果不需要，任何参数都是可以省略的。

#### 相关命令

CoordMode, WinGet, SetDefaultMouseSpeed, Click

#### 示例

    MouseGetPos, xpos, ypos
    Msgbox, The cursor is at X%xpos% Y%ypos%.

    ; 这个例子允许你通过移动鼠标来查看
    ; 鼠标悬停的窗口的信息
    #Persistent
    SetTimer, WatchCursor, 100
    return

    WatchCursor:
    MouseGetPos, , , id, control
    WinGetTitle, title, ahk_id %id%
    WinGetClass, class, ahk_id %id%
    ToolTip, ahk_id %id%`nahk_class %class%`n%title%`nControl: %control%
    return