曹操快切 E分支

曹操快切旨在提供更灵活、更直观、更便捷的窗口切换操作。
它具有的功能:

  • 支持自定义快捷键,唤出窗口列表之后按下固定的快捷键即可拉起固定的窗口
  • 支持自定义排除窗口
  • 支持置顶窗口
  • 在窗口顺序变更之后,列表中的窗口会尽可能地保持不变
  • 同名窗口被收起到一组中
  • 支持灵活的窗口匹配规则,如正则表达式匹配标题、类名,匹配程序路径、指定窗口样式
  • 体积较小,不依赖更多运行库

最初,它由 @dog 先生使用AHK编写。但在功能拓展的过程中,原先的程序结构与AHK支撑的核心已经无法胜任这份任务。故我尝试对程序结构进行优化,随后使用其他语言重构了软件。目前,软件使用C/C++/Delphi编程实现。

下载地址:

更新历史

2.4&2.5.E 25-24-06

树状图改为单击激活
修改了设置界面中“经典菜单”“树状视图”混淆的问题
修正,以支持HK_POLLING、HK_SYSTEM_HOTKEY(轮询和系统热键)两种热键检测方案
可选地以管理员身份运行,如果遇到奇怪的问题可以把这个打开试试看

Mac风格还是不能用
两种热键检测方案还是不能支持所有的键,例如”`“
未完成i18n,尤其是字符串硬编码
放弃对Windows7支持(Qt6导致的)

突然出现两个版本是因为实验Github的功能而不小心多发了一个…

2.3E 25-03-30

  • 上传至Github
  • 修复第一次激活列表时响应慢
    在初始化时先进行一次前置,尽可能避免之后使用暴力模式激活列表
  • 可选的暗黑模式
    Delphi有自带的皮肤,C界面则调用WindowsAPI。所以,早期系统上此功能可能无法使用
  • 可选地以管理员运行
    这样可以在其他管理员权限程序的界面中被唤出
  • 设置热重载可用
  • 设置英文上下文
    保证窗口列表被激活时总是英文状态。网上搜到的都是直接改变全局输入法状态,侵入性太强、健壮性太弱,故被弃用
  • 鼠标快捷键设置
    改用窗口子类化接管消息回调,直接处理消息
  • 程序图标
    花五分钟画了一个并不好看的(小声)

2.2E

此分支已脱离原帖描述的一些功能,且原帖回复太长,故开一新帖记录更新。

[1.5版新增多屏模式]曹操快切——一个极极极速的窗口切换工具,有了它,窗口毫秒就切换!


悄悄话

其实主要是作为自己的练习题啦
结构设计得十分漂亮!解耦合做得很好,在几乎不影响性能的情况下,每个功能都做成了一整块儿。删掉其中一块,其他块甚至还能正常跑。
C用于需要即时响应的用户界面;C++用于处理后端数据;比较复杂的设置界面则是Delphi完成。分工非常合理(点头)
源代码稍后上传
初三实在是有点忙…所以难得找时间更新一下,希望下一次更新效率高一点

9 个赞

初三学生?厉害了:+1:给你大拇哥

2 个赞

初中编程就这么厉害了,真是羡慕!简单试了下,功能已基本实现,:+1:

但我设置「`」为快捷键然后启动软件,导致窗口列表一直自动弹出,无法打开并选择菜单,只得重启系统。

其次测了一下之前 AHK 版本激活窗口列表不打断文件拖拽的特性,现在没有了,有点可惜,这个功能挺好用的,不知道能不能复刻。

1 个赞

在设置里面修改或添加, 得重新启动程序才能生效, 能否改成实时生效呢?
另外快捷键设置是否能改进下, 支持修饰键+鼠标这样的形式的快捷键, 特别想设置ctrl+鼠标中键的快捷键形式.

看到“E分支”,还以为楼主是用易语言重写了软件。。。。

1 个赞

我还以为已经有了ABCD分支了。

是想取encapsulation(封装)的意思,因为最开始的版本一点都没有封装,才想去优化它的

1 个赞

又学到一个新单词……

2.2新版本的界面不错。发现一个bug,用alt起头的快捷键有问题,比如alt+x,按完再按esc退出,反复一两次软件就会自动终止。另外也无法设置win开头的快捷键。还有,期待出深色模式的,感谢作者辛勤付出!!

补充一下,重启计算机似乎不再自动终止退出了,但是因为我用alt+space的快捷键,发现虽然能弹出切换的列表,但是原本默认的快捷键并没有被停用/覆盖,也会被调用出来

非常高兴得到您的反馈!增加了更完全的错误检查,以尽可能避免此类意外情况

窗口列表一直自动弹出

已修复,这是因为设定了不支持的快捷键。但是…没完全修好,目前还是不支持特殊符号键的唤起

不打断文件拖拽

树状视图的列表不会打断了

具有建设性!已完成

已修复设置界面中,鼠标按键抬起,编辑框中的按键立即消失的bug

之后会想办法支持基于全局hook的快捷键检查,作为可选功能。但是仍然不建议设置冲突的快捷键

网盘能否放个更新程序

1 个赞

反馈意见:

  1. 关于打断:现在alt+空格快捷键本身不会中断操作,但如果继续按窗口字母键(例如 e 键),无法激活窗口,最终仍无法实现“拖拽文件→(曹操快切)切换窗口→松开鼠标按键完成拖放”的流畅体验。
  2. 树状视图窗口中的窗口目前需要双击才能选择,是否可以改为单击?考虑到这是一个效率应用,操作步骤应尽可能简化。
1 个赞

2是建设性建议!之前没有发现这个小细节。
关于1,未能复现此错误
不知道为什么突然连不上蓝奏云,直接在Github更新了(瘫倒

关于 1 ,我又重新测试了一下,结果确实没问题了,之前那次应该是跟其他软件的快捷键冲突了。
关于 2 ,在新版本里也已经解决了,现在单击就反应很快。
感觉现在这个版本已经很接近完美状态了,就剩下软件的软件分配快捷键配置还需要完善一下。

不过,新版本也发现了一个小问题,Boardmix 白板,明明只有一个窗口,但是却会识别成多个窗口,这样一来,切换窗口的时候就得多按一次才行。

image.png

1 个赞

关于白板,可能是它为了特殊需求创建了一个不可见、无图标的窗口,下一次…可能要等到五一节…会针对它测试一下。对这种错误没有好办法,就只能全仗仰以您为代表的热心用户的反馈了

todo列表还有一堆…

  • Mac风格的切换列表还是不能用
  • 两种热键检测方案还是不能支持所有的键,例如”`“
  • 未完成i18n,尤其是字符串硬编码
  • 放弃对Windows7支持(Qt6导致的)
  • 设置窗口标题栏在暗色模式下更美观的处理
  • 是否使用qt全部重构?
  • 允许在列表中右键查看窗口的详细信息
  • 允许在设置界面使用拖放准星获取窗口信息
    (注,上面两项会方便地用于处理类似此白板软件的问题)
  • 心心念念的圆角磨砂玻璃样式
  • 完美的热键支持
  • 继续优化代码,结构要和思维导图一样规整

…暂时就…这么多?
原来准备以曹操快切作为接触ahk的引子的,现在它又作为接触Qt的引子了

1 个赞

还规划了这么多优化点,看了一下蛮值得期待的。
我竟然忘记了其中最重要的一条:

「`」是我的曹操快切专属启动键 :dizzy: