Я использую 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