前言
这几天看课的过程中发现了一个操蛋的问题,那就是Windows的焦点真的太操蛋了,当你正在操作某一个窗口,你是没有办法操作另一个窗口的,要想操作另一个窗口,你就必须使用鼠标选中要操作的窗口,这个平时使用倒是没有什么,但是当你边看课边记笔记,你就会感到无比的操蛋,你不得不一次又一次的挪动鼠标,就是为了记那个操蛋的笔记。
正文
前戏
所以我就想到,有没有什么比较好的东西,可以很方便的,在我需要切换焦点的时候自动切换焦点?然后当我完成操作的时候,自动将焦点切换为原来的窗口,这样就可以保证操作的连贯性了。我的场景就是在边看视频,边记录笔记,要求实现记笔记的过程中可以自由决定浏览器视频的播放,暂停,切换,快进和快退。而且最好我的手不用离开键盘。
明白要求后就可以开始着手功能的设计了,因为键盘上的大多数字符要么就是可以直接写入文本,要么就是操作系统的功能按键,比如win alt ctrl,这些键都是不能占用的,那么使用组合键? 快速打字的时候,组合键很容易按不准,或者很难同时按下来,最好还是单独的独立按键,这样可以避免反复按键的尴尬处境,剩余的候选人就很明白了,在打字的过程中,唯一用不上的就是Fn按键了,尤其是现在的笔记本平台想要使用Fn按键首先就需要打开Fn开关,如果不使用Fn上的功能也都是一些杂七杂八的功能,打字的过程中根本用不上。于是我就确定了,占用F1~F5 按键,用于进行浏览器的操控,操控的方式也很简单,当检测到被占用的Fn按下时,自动切换到浏览器(由于我只使用edge)直接写死了,你要想改,单独加入一个判断逻辑和一个候选列表即可。然后执行完操作后,自动切换到上一个焦点(文本编辑器)。
接下来就是选择实现工具了,这里我选择了一个开源的脚本语言,这个脚本语言对于快捷键映射的写法既高效也方便 - AutoHotkey,关键是十分的简单。并且官方提供了直接将脚本编译为二进制文件的工具,很方便二次传播。这里我就直接省事让人工智能写的脚本。
脚本
; EdgeVideoControl.ahk - AutoHotkey v2 (稳定版)
; 专用于控制 Microsoft Edge 中的视频播放(需网页支持 Media Session API)
;
; 功能说明:
; F1 : 播放 / 暂停
; F2 : 快退(←),长按可连续快退
; F3 : 快进(→),长按可连续快进
; F4 : 上一个视频(系统媒体键 ⏮)
; F5 : 下一个视频(系统媒体键 ⏭)
;
; 使用前提:
; - Edge 正在播放支持 Media Session API 的视频(如 YouTube、Bilibili 等)
; - 脚本通过系统媒体事件控制,不依赖 Edge 内部快捷键
; - 操作后自动恢复原窗口焦点
F1::Send "{Media_Play_Pause}"
; ========== F2: 快退 ==========
F2::
{
SeekEdge("{Left}")
SetTimer EdgeSeekBackward, 100
}
EdgeSeekBackward() {
if GetKeyState("F2", "P") {
SeekEdge("{Left}")
} else {
SetTimer EdgeSeekBackward, false
}
}
; ========== F3: 快进 ==========
F3::
{
SeekEdge("{Right}")
SetTimer EdgeSeekForward, 100
}
EdgeSeekForward() {
if GetKeyState("F3", "P") {
SeekEdge("{Right}")
} else {
SetTimer EdgeSeekForward, false
}
}
; ========== F4: 上一个视频 ==========
F4::Send "{Media_Prev}"
; ========== F5: 下一个视频 ==========
F5::Send "{Media_Next}"
; ========== 控制 Edge(仅用于方向键快进/快退)==========
SeekEdge(key) {
originalWin := WinExist("A")
edgeWin := WinExist("ahk_exe msedge.exe")
if !edgeWin
return
WinActivate edgeWin
Sleep 10
SendEvent key ;
Sleep 10
; 仅当 originalWin 是有效窗口时才尝试恢复焦点
if (originalWin) {
try WinActivate originalWin
}
}演示
分享
这里我已经将这个脚本打包为了二进制版本,这里分享一下,脚本也放在了同一目录,需要者自行取用。
跨窗口无感操控 Microsoft Edge 视频播放
https://blog.xzyuse.space/archives/ef2eb944-45f9-4112-a899-527aa88e2770
评论