Autohotkey 如何使“ifWinActive”和“WinActivateBottom”仅使用当前桌面?

Autohotkey 如何使“ifWinActive”和“WinActivateBottom”仅使用当前桌面?,autohotkey,Autohotkey,我有一个自动热键脚本,可以搜索是否存在特定的窗口,如果存在,它将激活它 我希望它只在当前桌面上搜索(我使用的是Windows 10) 你有建议怎么做吗 我的剧本: #c:: IfWinExist ,ahk_class ConsoleWindowClass { ifWinActive WinActivatebottom ,ahk_class ConsoleWindowClass else WinActivate return } #c:: WinActivateBottomOnCur

我有一个
自动热键
脚本,可以搜索是否存在特定的窗口,如果存在,它将激活它

我希望它只在当前桌面上搜索(我使用的是Windows 10)

你有建议怎么做吗

我的剧本:

#c::
IfWinExist ,ahk_class ConsoleWindowClass
{
 ifWinActive
 WinActivatebottom ,ahk_class ConsoleWindowClass
 else
  WinActivate
 return
}
#c:: WinActivateBottomOnCurrentVirtualDesktop("ConsoleWindowClass")

WinActivateBottomOnCurrentVirtualDesktop(Class){
    IfWinExist, ahk_class %Class%
    {
        list := ""
        LastWin := ""
        ; get a list of those windows on the current desktop
        WinGet, id, list, ahk_class %Class%
        Loop, %id%
        {
            this_ID := id%A_Index%
            If IsWindowOnCurrentVirtualDesktop(this_ID)
                LastWin := this_ID ; retrieves the bottommost matching window ID
        }
        WinActivate, ahk_id %LastWin%
    }
}


; https://autohotkey.com/boards/viewtopic.php?p=64295#p64295
; Indicates whether the provided window is on the currently active virtual desktop:

IsWindowOnCurrentVirtualDesktop(hWnd) {
    onCurrentDesktop := ""
    CLSID := "{aa509086-5ca9-4c25-8f95-589d3c07b48a}" 
    IID := "{a5cd92ff-29be-454c-8d04-d82879fb3f1b}" 
    IVirtualDesktopManager := ComObjCreate(CLSID, IID)  
    Error := DllCall(NumGet(NumGet(IVirtualDesktopManager+0), 3*A_PtrSize), "Ptr", IVirtualDesktopManager, "Ptr", hWnd, "IntP", onCurrentDesktop)
    ObjRelease(IVirtualDesktopManager)  
    if !(Error=0)
        return false, ErrorLevel := true
    return onCurrentDesktop, ErrorLevel := false
}