AHK Pause\Play youtube 在未聚焦的 chrome 标签中

AHK Pause\Play youtube in an unfocused chrome tab

我想暂停并播放我在后台播放时使用快捷键播放的 YouTube 视频。但我无法理解如何定位 chrome 及其选项卡之一。

按快捷键 将 "spacebar" 键发送到 chrome youtube 选项卡。

这看起来很简单,但我对此很陌生,感谢任何帮助。

原始工作脚本:

SetTitleMatchMode, 2

ControlGet, OutputVar, Hwnd,,Chrome_RenderWidgetHostHWND1, Google Chrome

ControlFocus,,ahk_id %outputvar%

Loop {
    IfWinExist, YouTube
        break

    ControlSend, , ^{PgUp} , Google Chrome
    sleep 300
}
ControlSend, , {Space} , Google Chrome

ctrl + PgUp用于在标签中循环,直到找到youtube标签,然后将space发送到chrome。您必须根据您的系统调整睡眠定时器。

没有 YouTube 标签或根本没有 Chrome 将导致无限循环。包括安全检查!

当不在 chrome 中并按 alt+shift+p 时,这将 play/pause 一个 youtube 视频,对于在 youtube 上听音乐很有用。 它会在后台找到 youtube 标签,play/pause 然后 return 到你的工作标签

SetTitleMatchMode 2
controlID := 0
tabCount := 0
#IfWinNotActive, ahk_exe chrome.exe
; Play/pause
+!p::
    ControlGet, controlID, Hwnd,,Chrome_RenderWidgetHostHWND1, Google Chrome
    ControlFocus,,ahk_id %controlID%
    IfWinExist, YouTube
    {
        ControlSend, Chrome_RenderWidgetHostHWND1, k , Google Chrome
        return
    }
    tabCount := 0
    Loop {
        IfWinExist, YouTube
            break
        ControlSend, , ^{PgUp} , Google Chrome
        sleep 150
    tabCount := tabCount + 1
    if tabCount > 10
      return
    }
    ControlSend, , k , Google Chrome
    Loop, %tabCount% {
        ControlSend, , ^{PgDn} , Google Chrome
        sleep 150
    }
    return
#IfWinNotActive
#Persistent
#NoEnv
#SingleInstance, Force
DetectHiddenWindows, On
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 2

controlN := 0

return

#IfWinNotActive, ahk_exe chrome.exe
z & space::
    chromeSend("{Space}")
return


z & right::
    chromeSend("{Right}")
return

z & left::
    chromeSend("{Left}")
return

chromeSend(keys)
{
    ControlGet, controlN, Hwnd,,Chrome_RenderWidgetHostHWND1, Google Chrome
    ControlFocus,,ahk_id %controlN%
    Sleep, 50
    ControlSend, Chrome_RenderWidgetHostHWND1, %keys% , Google Chrome
}



#IfWinActive, ahk_exe chrome.exe
z & space::
    chromeSend("k")
return


z & right::
    chromeSend("{Right}")
return

z & left::
    chromeSend("{Left}")
return

使用此代码,您可以使用 z + space/arrows.

控制 youtube