저는 Spotify의 프리미엄 가입자이자 강박적인 생산성 전문가입니다.
정말 성가신 것은 트랙에 '별표를 달기'위한 키보드 단축키가 없다는 것입니다 (즐겨 찾기에 트랙 추가). 나는 일하는 동안 Spotify 라디오를 켜두는 것을 좋아하고 매번 트랙을 마우스 오른쪽 버튼으로 클릭하고 좋아하는 노래를들을 때마다 '별표'를 선택해야합니다.
키보드 단축키로 트랙에 '별표 표시'를 할 수있는 Spotify 조정 / 플러그인이 있습니까?
저는 Spotify의 프리미엄 가입자이자 강박적인 생산성 전문가입니다.
정말 성가신 것은 트랙에 '별표를 달기'위한 키보드 단축키가 없다는 것입니다 (즐겨 찾기에 트랙 추가). 나는 일하는 동안 Spotify 라디오를 켜두는 것을 좋아하고 매번 트랙을 마우스 오른쪽 버튼으로 클릭하고 좋아하는 노래를들을 때마다 '별표'를 선택해야합니다.
키보드 단축키로 트랙에 '별표 표시'를 할 수있는 Spotify 조정 / 플러그인이 있습니까?
답변:
물론, 오토 핫키를 사용하십시오 !
설치가 완료되면이를 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 바로 가기를 시도했지만 작동하지 않았습니다 (단지 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
다음을 수행합니다.
완벽하지는 않지만 (어떤 이유로 화면 오른쪽에 매달려있는 것을 발견하면 행복하지 않을 것입니다) 대부분의 경우 작업을 수행합니다.
아래의 오래된 답변 ...
또 다른 오토 핫키 솔루션이 있습니다. 자유로운 의견이 있습니다. 또한 오토 핫키 문서와 포럼은 원하는 경우 배울 수있는 좋은 장소입니다.
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
}
나는 이것을 GollyJer의 답변에 대한 논평에 넣을 담당자가 없지만, 그 스크립트를 사용하려고 할 때 {down} 키 입력에 문제가 있음을 발견했습니다. 메뉴에서 아래로 이동하는 대신 키를 사용하는 대신 "Star"메뉴 항목에서 마우스 클릭을 수행하도록 수정했습니다. 꽤 잘 작동하는 것 같습니다. 또한 Spotify를 최소화하기 위해 사용했던 창으로 돌아 가기 전에 Spotify를 최소화하도록 편집했습니다.
^+*::
spotify = ahk_class SpotifyMainWindow
IfWinExist, %spotify%
{
WinGet, MMX, MinMax, %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.
MouseClick, Left, 20, -120, 1, 0,, R
} Else {
;Just close the context menu.
Send {Escape}
}
;Restore original window and mouse position.
IfEqual MMX, -1, WinMinimize, %spotify%
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}
Return
;Context 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
}
클릭 한 번으로 Spotify 노래를 응시하기위한 플랫폼 및 GUI 레이아웃 독립적 솔루션 인 Spotify 앱 Twinkle을 사용해 볼 수도 있습니다 .
"별표"명령이있는 솔루션은 더 이상 작동하지 않습니다. 더 이상 별표 명령이 없지만 "별표"는 항목을 추가 할 수있는 폴더입니다. 이 스크립트는 이것을합니다.
; Spotify "Star Song"
^+*::
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
;Open Add To... sub-menu
Send {A}
;The "Starred" command is the 2nd menu item. If the song is Starred it will be disabled.
Send {Down}{Enter}
;Restore original window and mouse position.
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}
Return
Spotify는 더 이상 "별"을 가지지 않으며 더 이상 상황에 맞는 메뉴의 내용을 검색 할 수 없으므로이 방법은 상황에 맞는 메뉴에서 픽셀 색상을보고 화살표 키를 사용하여 선택합니다. 최대화, 최소화 및 앨범 아트가 크거나 작은 경우 작동합니다.
^+*::
{
spotify = ahk_class SpotifyMainWindow
IfWinExist, %spotify%
{
;Store active window and mouse position.
WinGet, MMX, MinMax, %spotify%
WinGetActiveTitle, activeWindow
MouseGetPos x, y, winID
;Activate Spotify.
WinActivate %spotify%
WinWaitActive %spotify%
;Get maximised status
WinGet, isMaximised, MinMax
;Clear any context menus
Send {Escape down}{Escape up}
;Right click near the song title in the "Now Playing" box.
WinGetPos, , , , spotifyHeight, %spotify%
MouseClick, Right, 44, spotifyHeight - (isMaximised = 1 ? 75 : 66), 1, 0
sleep 200
MouseMove 10,0, ,R
sleep 200
; Determine if the song is already added to your library or not
; Look at left edge of the 'S' in Save to Your Library
; or the 'R' in Remove from Your Library
; 0x282828 is the background color of the menu
; if the background color is not present then the song is not in your library
PixelGetColor, pixelColor, 91, spotifyHeight - (isMaximised = 1 ? 129 : 119)
if (pixelColor = 0x282828) {
;Move up to 'Save to Your Library' and hit enter
loop, 1 {
Send {Up down}
sleep 50
Send {Up up}
sleep 50
}
Send {Enter down}
sleep 50
Send {Enter up}
sleep 50
} else {
; Already added, so close context menu
Send {Escape down}
sleep 50
Send {Escape up}
Sleep 50
}
;Restore original window and mouse position.
IfEqual MMX, -1, WinMinimize, %spotify%
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}
Return
}