我是 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 快捷方式對於自動熱鍵。
答案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 應用程序,閃爍,這是一個獨立於平台和 GUI 佈局的解決方案,只需單擊即可播放 Spotify 歌曲。