Sau khi làm những gì Kiran nói, hãy mở tất cả các video của bạn và chạy tập lệnh AutoHotKey sau đây
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%
}
}
Tập lệnh này sẽ gửi tổ hợp phím của bạn tới tất cả các phiên bản đang chạy của trình phát phương tiện VLC. Nó không hoạt động nếu bạn sử dụng chuột.
Những điều này nên hoạt động:
- phía trước:
Ctrl + right / Alt + right / Shift + right
- lạc hậu:
Ctrl + left / Alt + left / Shift + left
- tạm dừng chơi:
space
- tăng tôc:
]
- giảm tốc độ:
[
Bạn có thể dễ dàng thêm vào các tổ hợp phím khác bên dưới dòng: ~^down::LoopControlSend(Windows, "^{down}")
Điều này không đồng bộ hóa video một cách hoàn hảo, vì vậy bạn có thể sử dụng 4 phím sau: chỉ left, right, up, down
để điều khiển cửa sổ hoạt động .
left
nhảy lùi rất ngắn
right
nhảy về phía trước rất ngắn
up
nhảy lùi
down
nhảy về phía trước trung bình
Nếu bạn thích chọn chương trình theo cách thủ công, thay vào đó hãy sử dụng mã sau
;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%
}
}