
有沒有人成功地讓 Autohotkey 與 VLC 一起工作?
^numpad6::
DetectHiddenWindows , On
ControlSend , ahk_parent, !{right}, VLC Media Player
DetectHiddenWindows , Off
return
^numpad4::
DetectHiddenWindows , On
ControlSend , ahk_parent, !{left}, VLC Media Player ahk_class QWidget
DetectHiddenWindows , Off
return
^#space::
DetectHiddenWindows , On
ControlSend , ahk_parent, {space}, ahk_class QWidget
DetectHiddenWindows , Off
return
使用了這些(每種方法都有不同的方法),但它們不起作用。順便說一句,這些腳本可以與 Itunes 一起使用。
答案1
嘗試使用VLC HTTP Interface LIbrary,希望對您有幫助...這是VLC Media Player的http介面指令庫。
以下是使用 VLCHTTP 和 VLC 媒體播放器的一些優點:
VLC 不需要成為活動視窗即可使用 HTTP 功能,因此不會幹擾其他視窗。
HTTP 功能可在網際網路、本機網路或一台電腦上使用。
VLC 可以在任何顯示器上全螢幕播放,而不僅僅是預設顯示器。
VLC 將在點擊媒體連結的監視器上全螢幕開啟。
VLC 失去焦點時不會退出全螢幕。在一台顯示器上播放影片並在另一台顯示器上工作。
例子:
Gui, Add, Button, gButton1, Play/Pause
Gui, Add, Button, gButton2, Volume Up
Gui, Show
Return
Button1:
VLCHTTP_Pause() ; Use pause instead of play to toggle play/pause mode.
Return
Button2:
VLCHTTP_VolumeUp(1) ; Turns the volume up 1 step.
Return
更多資訊可以在以下位置找到:這個連結。
答案2
您的 ControlSend 命令可能應該有不同的參數(請閱讀說明文件以獲取更多資訊)。這適用於我的電腦(Win7 32):
^#Space::
SetTitleMatchMode, 2
ControlSend, , {space}, VLC media player
Return
事實證明,您不需要任何控制 ID:VLC 將接受任何控制項(或至少是最上面的控制項)中的空間。我認為您的程式碼的問題在於您同時使用了視窗類別和標題中的文字來識別視窗:您應該只使用其中之一,而不是同時使用兩者。
我總是將標題匹配模式設為 2(= 單字可以出現在標題中的任何位置),因為這樣可以捕獲大多數標題並且更直觀地工作(我懶得測試它是否適用於不同的匹配模式)。
答案3
您也可以使用 IfWinExist 執行此操作,這樣您只需指定 VLC 父名稱一次。這是我使用的程式碼。
#IfWinExist ahk_class QWidget
Media_Next::
ControlSend, ahk_parent, n ; Next
return
Media_Prev::
ControlSend, ahk_parent, p ; Previous
return
Media_Play_Pause::
ControlSend, ahk_parent, {Space} ; Play/Pause
return
Media_Stop::
ControlSend, ahk_parent, s ; Stop
return
#IfWinExist