VLC und Autohotkey

VLC und Autohotkey

Hat es jemand geschafft, Autohotkey mit VLC zum Laufen zu bringen?

^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

Habe diese verwendet (für jedes eine andere Methode) und sie funktionieren nicht. Die Skripte funktionieren übrigens mit iTunes.

Antwort1

Versuchen Sie, die VLC HTTP Interface Library zu verwenden. Ich hoffe, das hilft Ihnen weiter … Dies ist eine Bibliothek mit den HTTP-Schnittstellenbefehlen für den VLC Media Player.

Hier sind einige Vorteile der Verwendung von VLCHTTP und VLC Media Player:

  • VLC muss NICHT das aktive Fenster sein, um HTTP-Funktionen zu verwenden und stört daher nicht andere Fenster.

  • HTTP-Funktionen können über das Internet, lokale Netzwerke oder auf einem Computer verwendet werden.

  • VLC kann auf jedem Monitor im Vollbildmodus wiedergegeben werden, nicht nur auf dem Standardmonitor.

  • VLC wird im Vollbildmodus auf dem Monitor geöffnet, auf dem der Medienlink angeklickt wurde.

  • VLC verlässt den Vollbildmodus nicht, wenn es den Fokus verliert. Spielen Sie einen Film auf einem Monitor ab und arbeiten Sie auf dem anderen.

Beispiel:

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

Weitere Informationen finden Sie unterdieser Link.

Antwort2

Ihr ControlSend-Befehl sollte wahrscheinlich andere Parameter haben (lesen Sie die Hilfedatei für weitere Informationen). Dies funktioniert auf meinem PC (Win7 32):

^#Space::
SetTitleMatchMode, 2
ControlSend, , {space}, VLC media player
Return

Es stellt sich heraus, dass Sie keine Steuerelement-ID benötigen: VLC akzeptiert Leerzeichen in jedem Steuerelement (oder zumindest im obersten Steuerelement). Das Problem mit Ihrem Code war meiner Meinung nach, dass Sie sowohl die Fensterklasse als auch den Text aus dem Titel verwendet haben, um das Fenster zu identifizieren: Sie sollten nur das eine oder das andere verwenden, nicht beides.

Ich stelle den Titelübereinstimmungsmodus immer auf 2 (= Wörter können überall im Titel stehen), weil das die meisten Titel erfasst und intuitiver funktioniert (ich bin zu faul, um zu testen, ob es mit einem anderen Übereinstimmungsmodus funktioniert).

Antwort3

Sie können es auch mit IfWinExist machen, sodass Sie den VLC-Elternnamen nur einmal angeben müssen. Hier ist der Code, den ich verwende.

#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

verwandte Informationen