Spotify ปรับแต่งใด ๆ ด้วยแป้นพิมพ์ลัดเพื่อแทร็ก 'ติดดาว'?


20

ฉันเป็นสมาชิกระดับพรีเมี่ยมของ Spotify และความสามารถในการผลิตที่ครอบงำ

สิ่งหนึ่งที่ทำให้ฉันรำคาญจริงๆคือไม่มีแป้นพิมพ์ลัดเพื่อ 'ติดดาว' แทร็ก (เช่นเพิ่มแทร็กในรายการโปรด) ฉันชอบเปิดวิทยุ Spotify ไว้ในขณะที่ฉันกำลังทำงานและทุก ๆ ครั้งที่ฉันต้องแท็บและคลิกขวาบนแทร็กจากนั้นเลือก 'ดาว' ทุกครั้งที่ได้ยินเพลงที่ฉันชอบ

มี Spotify tweaks / plugins ใดบ้างที่จะทำให้ฉันสามารถ 'ติดดาว' ด้วยแป้นพิมพ์ลัดได้หรือไม่?


คุณใช้โปรแกรมเล่นสื่อ Windows อยู่หรือไม่?
Diogo

ไม่เพียง Spotify
Eddy

คำตอบ:


3

แน่นอนว่าใช้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


1
ปัญหาคือ spotify ยังมีตำแหน่งเดียวกันเมื่อคลิกเพื่อ UNSTAR ติดตาม ดังนั้นในกรณีที่คุณไม่ต้องติดดาวติดดาวโดยใช้วิธี ahk
ms แมนน์

2

ฉันลองช็อตคัต Autohotkey อันอื่นและมันไม่ได้ผลสำหรับฉัน (เพิ่งเปลี่ยนเพื่อระบุและคลิกในจุดที่สองตาย) ฉันวางแผนต่อไปนี้ซึ่งทำงานได้ตราบใดที่คุณเลือก "งานศิลปะที่กำลังเล่นขนาดใหญ่" ที่เลือก:

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
  • คำนวณออฟเซ็ตสำหรับการคลิกที่ปกอัลบั้มที่เกี่ยวข้องเพื่อระบุหน้าต่าง
  • ติดดาวสิ่งที่กำลังเล่นอยู่ (ผ่านอาร์ตเวิร์กคลิกขวาคลิกซ้ายดาว)
  • คืนค่าหน้าต่างใด ๆ ที่ใช้งานอยู่ก่อนหน้านี้ทั้งหมด

มันไม่สมบูรณ์แบบ (อาจจะไม่มีความสุขถ้าด้วยเหตุผลบางอย่างที่คุณเห็นว่าการแขวนส่วนใหญ่อยู่นอกหน้าจอของคุณไปทางขวา) แต่ทำให้งานสำเร็จในกรณีส่วนใหญ่


มันเยี่ยมมาก! ขอบคุณ การปรับปรุงคือการอ่านรายการเมนูบริบทล่าสุดเพื่อดูว่ามันอ่าน Unstar หรือไม่และถ้าเป็นเช่นนั้นอย่าคลิก ถ้าฉันไปถึงฉันจะกลับมาและโพสต์
GollyJer

2

ที่ติดดาวจะไม่มีอีกต่อไป

ไปที่นี่สำหรับคำถาม & คำตอบที่อัปเดตแล้ว


คำตอบเก่าด้านล่างที่นี่ ...

นี่เป็นอีกวิธีการแก้ปัญหา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
}

สิ่งนี้ไม่ทำงานอีกต่อไป ดูวิธีแก้ปัญหาของฉัน
tig

0

ฉันไม่มีตัวแทนในการแสดงความคิดเห็นต่อคำตอบของ GollyJer แต่ฉันสังเกตเห็นเมื่อพยายามใช้สคริปต์นั้นว่ามีปัญหากับการกดแป้น {down} ที่จะทำให้เพลงที่เน้นในเพลย์ลิสต์ลง แทนที่จะเลื่อนลงบนเมนู ฉันแก้ไขมันเพื่อทำการคลิกเมาส์ที่รายการเมนู "Star" แทนที่จะใช้ปุ่มดูเหมือนว่าจะทำงานได้ค่อนข้างดี ฉันยังแก้ไขเพื่อลด 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
}

0

คุณสามารถลองSpotify AppของฉันTwinkleซึ่งเป็นแพลตฟอร์มอิสระและรูปแบบ GUI สำหรับการดูเพลง Spotify ด้วยการคลิกเพียงครั้งเดียว


0

โซลูชันที่ขึ้นอยู่กับการใช้คำสั่ง "Star" ไม่ทำงานอีกต่อไป ... ไม่มีคำสั่ง Star อีกต่อไป แต่ "Starred" เป็นรายการโฟลเดอร์ที่สามารถเพิ่มได้ สคริปต์นี้ทำสิ่งนี้

; 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

0

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
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.