Après avoir fait ce que Kiran a dit, ouvrez toutes vos vidéos et exécutez l'AutoHotKey script 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 de touches à toutes les instances en cours du lecteur multimédia VLC. Cela ne fonctionne pas si vous utilisez une souris.
Ces choses devraient fonctionner :
- en avant :
Ctrl + right / Alt + right / Shift + right
- à l'envers :
Ctrl + left / Alt + left / Shift + left
- lecture/pause :
space
- accélérer :
]
- vitesse réduite :
[
Vous pouvez facilement ajouter d'autres frappes sous la ligne : ~^down::LoopControlSend(Windows, "^{down}")
Cela ne synchronise pas parfaitement les vidéos, vous pouvez donc utiliser les 4 clés suivantes : left, right, up, down
pour contrôler le fenêtre active uniquement .
-
left
très court saut en arrière
-
right
saut en avant très court
-
up
saut arrière moyen
-
down
saut en avant 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%
}
}