Я премиум-подписчик Spotify и фанат производительности.
Единственное, что меня действительно раздражает, так это отсутствие сочетания клавиш для «отметки» трека (т. е. добавления трека в избранное). Мне нравится оставлять радио Spotify включенным во время работы, и время от времени мне приходится переходить на вкладку, нажимать правой кнопкой мыши на треке и выбирать «Отметить», когда я слышу песню, которая мне действительно нравится.
Существуют ли какие-либо твики/плагины для Spotify, которые позволят мне «отмечать» треки с помощью сочетания клавиш?
решение1
Конечно, используйтеAutoHotkey!
После установки вставьте в файл 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решение. Есть либеральные комментарии. Также, документация и форумы 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, представляющее собой независимое от платформы и графического интерфейса решение для запуска песен Spotify одним щелчком мыши.