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 Media Player を使用する利点は次のとおりです。

  • VLC は、HTTP 機能を使用するためにアクティブ ウィンドウである必要がないため、他のウィンドウに干渉しません。

  • HTTP 関数は、インターネット、ローカル ネットワーク、または 1 台のコンピューター上で使用できます。

  • VLC は、デフォルトのモニターだけでなく、任意のモニターで全画面再生できます。

  • VLC は、メディア リンクがクリックされたモニターで全画面で開きます。

  • VLC はフォーカスを失っても全画面表示から外れません。 1 つのモニターで映画を再生し、もう 1 つのモニターで作業します。

例:

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 親名を 1 回だけ指定するだけで済みます。以下は私が使用するコードです。

#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

関連情報