Après avoir suivi les instructions de Kiran, ouvrez toutes vos vidéos et exécutez le script AutoHotKey suivant.
ScriptVersion = 1.1
#Singleinstance,force
GoSub, MainProgram
return
mainprogram:
SetTitleMatchMode, 2
WinGet, id, list, - VLC media player,, Program Manager
Windows =
Loop, %id%
{
StringTrimRight, this_id, id%a_index%, 0
Windows := this_id . "," . Windows
}
StringTrimRight, Windows, Windows, 1
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
~]::LoopControlSend(Windows, "]")
~[::LoopControlSend(Windows, "[")
~j::LoopControlSend(Windows, "j")
~k::LoopControlSend(Windows, "k")
~space::LoopControlSend(Windows, "{space}")
~+left::LoopControlSend(Windows, "+{left}")
~!left::LoopControlSend(Windows, "!{left}")
~^left::LoopControlSend(Windows, "^{left}")
~+right::LoopControlSend(Windows, "+{right}")
~!right::LoopControlSend(Windows, "!{right}")
~^right::LoopControlSend(Windows, "^{right}")
~^up::LoopControlSend(Windows, "^{up}")
~^down::LoopControlSend(Windows, "^{down}")
; for active windows only. use this to adjust speed when out of sync
~left::ActiveWindowSend(Windows, "+{left}")
~right::ActiveWindowSend(Windows, "+{right}")
~up::ActiveWindowSend(Windows, "^{left}")
~down::ActiveWindowSend(Windows, "^{right}")
return
LoopControlSend(Windows, x)
{
WinGet, active_id, ID, A
is_valid_window = 0
Loop,Parse,Windows,CSV
{
if active_id = %A_LoopField%
{
is_valid_window = 1
break
}
}
if is_valid_window
{
Loop,Parse,Windows,CSV
{
if active_id <> %A_LoopField%
{
ControlSend, , %x%, Ahk_Id %A_LoopField%
}
}
}
}
ActiveWindowSend(Windows, x)
{
WinGet, active_id, ID, A
is_valid_window = 0
Loop,Parse,Windows,CSV
{
if active_id = %A_LoopField%
{
is_valid_window = 1
break
}
}
if is_valid_window
{
SendInput, %x%
}
}
Ce script envoie vos frappes sur toutes les instances du lecteur multimédia VLC en cours d’exécution. Cela ne fonctionne pas si vous utilisez une souris.
Ces choses devraient fonctionner:
- vers l'avant:
Ctrl + right / Alt + right / Shift + right
- en arrière:
Ctrl + left / Alt + left / Shift + left
- jouer pause:
space
- accélérer:
]
- ralentir:
[
Vous pouvez facilement ajouter d'autres frappes au-dessous de la ligne: ~^down::LoopControlSend(Windows, "^{down}")
Cela ne synchronise pas parfaitement les vidéos, vous pouvez donc utiliser les 4 touches suivantes: left, right, up, down
pour contrôler uniquement la fenêtre active .
left
saut en arrière très court
right
saut très court en avant
up
saut en arrière moyen
down
saut moyen
Si vous préférez choisir les programmes manuellement, utilisez plutôt le code suivant
;Modified from MultipleSend by jgpaiva
ScriptVersion = 1.1
#Singleinstance,force
GoSub, MainProgram
return
Guiescape:
GuiClose:
gui,destroy
exitapp
mainprogram:
;start by populating the listview.
Gui, 1:default
Gui, Add, Text, ,Select the windows to send the text.`nSelect several by pressing ctrl while selecting.`nAfter you've finished the selection`, press Submit.
Gui, Add, ListView,w400 h500 vMyListView, Name of the Window | Window Class |Window ID
WinGet, id, list,,, Program Manager
Loop, %id%
{
StringTrimRight, this_id, id%a_index%, 0
WinGetClass, this_class, ahk_id %this_id%
WinGetTitle, this_title, ahk_id %this_id%
If This_Title =
continue
if % LV_Add("",This_Title,This_Class,This_ID) = 0
msgbox, bug
}
Gui, Add, Button, default,Submit
Gui, Show
return
ButtonSubmit:
NextRow := -1
Windows =
Loop,% LV_GetCount("Selected")
{
NextRow:=LV_GetNext(NextRow)
LV_GetText(Text, NextRow,3)
Windows := Text . "," . Windows
}
StringTrimRight, Windows, Windows, 1
Gui,1:Destroy
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
~]::LoopControlSend(Windows, "]")
~[::LoopControlSend(Windows, "[")
~j::LoopControlSend(Windows, "j")
~k::LoopControlSend(Windows, "k")
~space::LoopControlSend(Windows, "{space}")
~+left::LoopControlSend(Windows, "+{left}")
~!left::LoopControlSend(Windows, "!{left}")
~^left::LoopControlSend(Windows, "^{left}")
~+right::LoopControlSend(Windows, "+{right}")
~!right::LoopControlSend(Windows, "!{right}")
~^right::LoopControlSend(Windows, "^{right}")
~^up::LoopControlSend(Windows, "^{up}")
~^down::LoopControlSend(Windows, "^{down}")
; for active windows only. use this to adjust speed when out of sync
~left::ActiveWindowSend(Windows, "+{left}")
~right::ActiveWindowSend(Windows, "+{right}")
~up::ActiveWindowSend(Windows, "^{left}")
~down::ActiveWindowSend(Windows, "^{right}")
return
LoopControlSend(Windows, x)
{
WinGet, active_id, ID, A
is_valid_window = 0
Loop,Parse,Windows,CSV
{
if active_id = %A_LoopField%
{
is_valid_window = 1
break
}
}
if is_valid_window
{
Loop,Parse,Windows,CSV
{
if active_id <> %A_LoopField%
{
ControlSend, , %x%, Ahk_Id %A_LoopField%
}
}
}
}
ActiveWindowSend(Windows, x)
{
WinGet, active_id, ID, A
is_valid_window = 0
Loop,Parse,Windows,CSV
{
if active_id = %A_LoopField%
{
is_valid_window = 1
break
}
}
if is_valid_window
{
SendInput, %x%
}
}