VLC 和 Autohotkey

VLC 和 Autohotkey

有谁成功让 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 接口库,我希望它可以帮助您...这是 VLC 媒体播放器的 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 命令可能应该有不同的参数(请阅读帮助文件以获取更多信息)。这在我的 PC(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

相关内容