Я хотел бы иметь возможность получить текущее время воспроизведения файла в медиапроигрывателе VLC и вставить его в качестве временной метки в текстовый процессор - что-то вроде комбинации горячих клавиш, которая выдаст «[ЧЧ: ММ: СС]» в текущая позиция курсора.

Есть ли какой-нибудь способ сделать это? Если нет, учитывая что-то вроде AutoHotkey, как мне получить текущее время из VLC?

1 ответ1

1

Я использую AutoHotKey, как показано ниже.

Но это несколько сложно, так как AFAIK нет способа предсказать и позиционировать фокус в поле времени. Я думаю, что это (по крайней мере, в немецкой версии), потому что для него нет комбинации Alt-Key. Есть только (как видно) две комбинации Alt-Key: для кнопки "Los" (по-немецки "OK") и для «Abbrechen (по-немецки" Cancel "). Следующая проблема заключается в том, что диалог не является модальным, и нажатие Alt-Keys активирует меню в главном окне.

Поэтому я использую MouseClick чтобы щелкнуть поле времени. Координаты могут отличаться в зависимости от разрешения экрана. Пожалуйста, измените это для вашего разрешения экрана. Evtl. используйте AutoHotKey WindowSpy чтобы получить ваши координаты

Кроме того, я сохраняю исходное содержимое буфера обмена и положение мыши в начале скрипта и восстанавливаю их в конце.

; # Insert Timestamp from VLC
#ifWinActive ahk_exe WINWORD.EXE
F8::
    ; GoToTimeDialogName:="Zu Zeitpunkt gehen" ; # german name of "Go to Time" dialog
    GoToTimeDialogName:="Go to Time" ; # english name of "Go to Time" dialog
    ClipSaved := ClipboardAll ; # Save the entire clipboard
    MouseGetPos x, y ; # get current mouse position
    if WinExist("ahk_exe vlc.exe") { ; # if vlc existst, i.e. vlc is running
        WinActivate ; # activate vlc window
        Send, {Esc} ; # make sure you are not in other dialogs
        Send, ^t ; # open the "Go to Time" dialog
        if WinExist(GoToTimeDialogName) { ; # if the "Go to Time" dialog exists
            WinActivate ; # activate "Go to Time" dialog exists
            MouseClick, left, 120, 48 ; # click on time field (change this for other screen resolutions)
            Send, ^a ; # select time field
            Send, ^c ; # copy to clipboard
            ClipWait ; # Wait for the clipboard to contain text.
            ts:=clipboard ; # get content of clipboard to var "ts"
            Send, ^t ; # quit "Go to Time" dialog
        }
    }
    if WinExist("ahk_exe WINWORD.EXE") { ; # if word exists
        WinActivate  ; # activate word window
        Send, [%ts%]{space} ; # insert the timestamp surrounded by brackets and a space
    }
    Clipboard := ClipSaved   ; # Restore the original clipboard
    MouseMove %x%, %y% ; # move mouse to original position
Return

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