Spotify 有使用键盘快捷键对“星号”曲目进行调整吗?

Spotify 有使用键盘快捷键对“星号”曲目进行调整吗?

我是 Spotify 的高级订阅用户,也是一名痴迷于提高生产力的极客。

有一件事让我很恼火,那就是没有键盘快捷键来“加星标”曲目(即将曲目添加到收藏夹)。我喜欢在工作时打开 Spotify 电台,但每当我听到一首我非常喜欢的歌曲时,我都必须切换到曲目并右键单击,然后选择“加星标”。

是否有任何 Spotify 调整/插件可以让我使用键盘快捷键为曲目“加注星标”?

答案1

当然,使用自动热键

安装完成后,将其放入 AutoHotkey.ahk 文件中:

#*::
WinWait, Spotify, 
IfWinNotActive, Spotify, , WinActivate, Spotify, 
WinWaitActive, Spotify, 
MouseClick, left,  79,  90
Sleep, 100
MouseClick, left,  256,  152
Sleep, 100
return

这将添加一个 Win+Asterisk 热键,用于为正在播放的曲目加星号。

您可能还对其他内容感兴趣Spotify 快捷方式用于 AutoHotkey。

答案2

我尝试了其他 Autohotkey 快捷键,但对我不起作用(只是切换到 spotify 并点击了两个死点)。我设计了以下方法,只要您选择了“大型正在播放的艺术品”,该方法就可以起作用:

CoordMode, Mouse, Relative
;star currently playing
+^l::
SpotifyWinHeight = 1050 ;set to 1080 - 30 for small taskbar size, just in case WinGetPos doesn't work for some reason
WinGetActiveTitle, CurWindow
WinActivate Spotify
WinWaitActive Spotify
WinGetPos,  ,  ,  , SpotifyWinHeight, Spotify
;          X  Y  W  H, we don't care about anything but height
RightClickTarget := SpotifyWinHeight - 250
ContextMenuTarget := RightClickTarget + 110
MouseMove, 100, %RightClickTarget%
Click Right
Sleep, 50
MouseMove, 180, %ContextMenuTarget%
Sleep, 50
Click
WinActivate %CurWindow%
return

它执行以下操作:

  • 存储当前活动窗口
  • 激活 Spotify
  • 计算点击专辑封面相对于 spotify 窗口的偏移量
  • 为当前正在播放的内容加注星标(右键单击图片,左键单击星标)
  • 恢复之前处于活动状态的所有窗口

它并不完美(如果由于某种原因,Spotify 大部分时间都悬在屏幕右侧,你可能会不高兴),但在大多数情况下都能完成工作。

答案3

加星标已不再是事儿。

到这里以获取更新后的问答。


下面是旧答案...

这是另一个自动热键解决方案。有自由的评论。此外,如果需要,AutoHotkey 文档和论坛也是学习的好地方。

按下 Control+Shift+* 将为当前歌曲加星标。
这个脚本的一个关键特性是它会检查这首歌是否已经加星标,如果是的话就不再检查。

^+*::
spotify = ahk_class SpotifyMainWindow
IfWinExist, %spotify%
{
;Store active window and mouse position.
WinGetActiveTitle, activeWindow
MouseGetPos x, y, winID

;Activate Spotify.
WinActivate %spotify%
WinWaitActive %spotify%

;Right click near the song title in the "Now Playing" box.
WinGetPos,  ,  ,  , spotifyHeight, %spotify%
MouseClick, Right, 100, spotifyHeight - 70, 1, 0

;Get the contents of the context menu.
WinWait, ahk_class #32768
SendMessage, 0x1E1      ; MN_GETHMENU
allContextMenuInfo := ErrorLevel

;The "Star" command is the 5th menu item.
;If the song is Unstarred the text is Star, and vice versa. But sometimes some wierd characters are included.
;The only reliable way I found is to check if the first letter is S.
menuText_StarUnstar := GetContextMenuItemText(allContextMenuInfo, 5)
StringGetPos, positionOfS, menuText_StarUnstar, S

;If S is the first letter, star the song.
notStarred := (%positionOfS% = 0)
If notStarred {
    ;Arrow down to the Star menu item and press enter.
    Send {Down}{Down}{Down}{Down}{Down}{Enter}
} Else {
    ;Just close the context menu.
    Send {Escape}
}

;Restore original window and mouse position.
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}

Return

;Conext menu helper function.
GetContextMenuItemText(hMenu, nPos)
{
length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "UInt", 0 ; NULL
        , "Int", 0  ; Get length
        , "UInt", 0x0400)   ; MF_BYPOSITION
    VarSetCapacity(lpString, length + 1)
    length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "Str", lpString
        , "Int", length + 1
        , "UInt", 0x0400)
return lpString
}

答案4

你也可以尝试我的Spotify 应用程序 Twinkle,这是一个独立于平台和 GUI 布局的解决方案,只需单击即可启动 Spotify 歌曲。

相关内容