2

У кого-нибудь был какой-нибудь успех, заставляющий 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, кстати.

3 ответа3

2

Попробуйте использовать библиотеку VLC HTTP Interface, надеюсь, это может помочь вам ... Это библиотека команд интерфейса http для VLC Media Player.

Вот некоторые преимущества использования VLCHTTP и VLC Media Player:

  • 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

Более подробную информацию можно найти по этой ссылке.

0

Вы также можете сделать это с 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
0

Ваша команда ControlSend, вероятно, должна иметь другие параметры (для получения дополнительной информации прочитайте файл справки). Это работает на моем ПК (Win7 32):

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

Оказывается, вам не нужен идентификатор элемента управления: VLC будет принимать пробел в любом элементе управления (или, по крайней мере, в самом верхнем элементе управления). Я думаю, что проблема с вашим кодом заключалась в том, что вы использовали и класс окна, и текст из заголовка, чтобы идентифицировать окно: вы должны просто использовать одно или другое, а не оба.

Я всегда устанавливаю режим сопоставления заголовков на 2 (= слова могут быть где угодно в заголовке), потому что это ловит большинство заголовков и работает более интуитивно (мне лень проверять, работает ли он в другом режиме сопоставления).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .