Hi,各位,有方子实现鼠标切换至不同屏幕时,窗口焦点及时跟随鼠标吗?

Windows本身可以实现“通过将鼠标是停在密口上来激活窗口”,但不能进一步细化设置

具体而言:
如果鼠标在同一块屏幕内移动时,窗口焦点不跟随鼠标位置;
如果鼠标移到另一块屏幕,窗口焦点将跟随鼠标位置

gemini秒了,ahk v2:

#Requires AutoHotkey v2.0
#SingleInstance Force

; 设置检测频率(毫秒)
SetTimer(MonitorFocusSwitcher, 150)

MonitorFocusSwitcher() {
    static lastMonitor := 0

    CoordMode "Mouse", "Screen"
    MouseGetPos(&mX, &mY, &idUnderMouse)

    ; 获取鼠标当前所在的显示器句柄 (MonitorFromPoint)
    hMonitor := DllCall("User32.dll\MonitorFromPoint", "Int64", (mX & 0xFFFFFFFF) | (mY << 32), "UInt", 2, "Ptr")

    ; 如果显示器发生跨越
    if (hMonitor != lastMonitor) {
        if (idUnderMouse) {
            try {
                ; 获取该窗口的类名
                thisClass := WinGetClass("ahk_id " idUnderMouse)

                ; 过滤逻辑:
                ; WorkerW / Progman: Windows 桌面
                ; Shell_TrayWnd / Shell_SecondaryTrayWnd: 任务栏
                if !(thisClass ~= "i)^(WorkerW|Progman|Shell_TrayWnd|Shell_SecondaryTrayWnd)$") {
                    WinActivate("ahk_id " idUnderMouse)
                }
            }
        }
        lastMonitor := hMonitor
    }
}