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

这个quicker动作跟你这个很像

我最近还发现了好几个差不多思路的,各有特色吧

建议增加一个置顶窗口列表的功能

背景

当前曹操快切窗口列表的排列顺序会变化,最近激活的窗口被置于列表的最上方。这种动态变化不利于用户通过固定的记忆顺序来快速切换窗口。

为什么不用 Windows 任务栏来切换固定的窗口

这种方法在实际操作中并不高效。尤其当鼠标距离任务栏很远时,移动鼠标点击然后再移回原位相比使用曹操快切窗口要费力。

为什么不全面依赖曹操快切的自定义快捷键来切换

虽然当前已经在使用这种方法,但记忆快捷键需要一定的记忆成本,且操作方式与通过列表选择窗口不同,有时更倾向于使用鼠标来选择。因此,置顶列表的功能和快捷键切换是互为补充而非替代的关系,能够提供更为灵活高效的切换方式。

不错,好建议

这段序列必须36个字符吗?我删掉数字部分的话菜单就不能正确显示速达键了

呃,好吧

嗯 当时考虑不周,写死了得是36个
你可以用| \ = +之类的补充够数

非常高级。同程序切换,我原来以为是同程序不同标签之间切换,原来不是! 我在想有没有可能把同程切换升级到不同标签之间的切换,比如资源管理器标签,浏览器标签?

楼主的2.0啥时候能出来呀

1 个赞

最近太忙了,可能过一阵吧。。。
不过难保过一阵更忙。。。
哎,赚钱要紧。。。

2 个赞

报告一个 Bug,重现步骤:
①按下快捷键激活列表,不选择任何选项,点击空白处让列表关闭
②按下空格,空格变成回车

偶尔打字会变成拼音字母上屏,真是让人头大!总是偷偷摸摸地捣乱。今天终于逮到它了,原来是曹操快切在作怪!

我找了一下原因是getallinfo
里面的
Run addons\Space2Enter.exe
导致的

目前把它删掉了。
希望能改进,既保留空格确认窗口,又不造成误输出回车

2 个赞

我也是发现了这个问题
有时候输入的时候自动默认为英文上屏了
一直没找到是什么原因,还以为是输入法的问题
今天才知道是这个造成的
:rofl:

有个问题想请教一下~有些网页的标题太长了,菜单跟着变很宽,用起来不方便。

试过让AI修改,标题是缩短了,却无法激活窗口了,怎么改都改不好。有没有简单的修改方法能让窗口标题显示限制在20个字以内?

1 个赞

(举手)很棒的软件,想帮忙修BUG,但是没有地方可以提交…请问是否愿意接受协助?如果接受协助的话,有github嘛,或者说其他提交协助结果的渠道?

我弄个GitHub明天 很久之前github密码忘了 刚找回:sweat_smile:

1 个赞

啊啊啊…第一次写ahk,修一个bug又发现十个,故留个纪念
1.52版有的bug,按严重性降序
修完会打删除线。如果修好但是电脑崩溃导致没保存会把删除线去掉

space2enter出问题 完成!
不准备改了,准备舍弃…用winapi子类化直接接管消息回调实现空格选择好了
鼠标轮盘应该可以顺便实现一下
再更新:舍弃掉上方方案。ahk的上下文相关能更好地完成任务

匹配到带标题的子窗口 完成!
这个倒是简单,直接过滤一遍顶层窗口即可
没人用Windows7嘛…这个bug甚至会把win7“开始”按钮加到切换中
在想要不要加一个可选功能,排除任务栏无图标的窗口

代码缩进 完成!
很好奇狗狗先生是怎么在如此凌乱的代码中添加新功能的
小问题,格式化一下即可
更新:不是小问题,格式化之后冻结功能出错
完成,一处Tab被转为四个空格后出问题

代码重用
直接打包为exe的三个组件,多花了三份解释器的体积
相当一部分代码可以被封装

同程序切换有误 完成!
如果真的是狗狗先生说的

如果你的两个窗口名称完全一样,比如都叫微信,都叫 空白页 - edge,它就认不出来了。

那好办,本质上是无法区分同名窗口
去掉WinActivateBottom , ahk_exe %activeexe% ;,,%activename%,
中的
,,%activename%,
即可

同标题但其他不同的菜单项的切换无效的问题 完成!
统一以hwnd作为标识符激活窗口,同时保证窗口关闭后临时锁定即失效
基于此,把Windows.UI.Core.CoreWindow的排除提前到收集所有窗口信息的阶段

等待更新…

1 个赞

整了一个github项目,
huangfeiqiannian/caocao-QuickSwitcher: Your Ultimate Window - Switching Solution
你分支一个出去,然后在你那个基础上更新个2.0版就好了,我这个分支就不更新了(我好久没用曹操快切,已经写了个别的自用切换软件在用)
注意哈:曹操快切的图标我是网上随便找的,建议你换个自己或者AI做的图标。

个人觉得应该实现但是当时俺没能力实现的,还望大佬逐步一并给实现了或者先添到todo:

  1. 完整的设置页面(暗色与否、排除列表、快捷键、固定搭配、语言等)。
  2. 鼠标轮盘。
  3. 插件功能。
  4. 伴随虚拟桌面的软件切换。

感恩的心

2 个赞

其中,伴随虚拟软件的软件切换可以具体展开一下嘛,不是很理解

就是比如某窗口是在其他虚拟桌面打开的,当切换到该窗口时,先切换到该虚拟桌面
现在是压根只识别当前桌面的窗口,不涉及虚拟桌面

1 个赞

很好(瘫
鸽了几天总算搞定了初版
改变有点多,新开一楼

舍弃项目:

  • a.冻结模式及所有冻结相关逻辑
  • b.用于显示窗口的弹出菜单
  • c.以标题查找窗口的所有相关逻辑
  • d.space2enter及所有相关逻辑

新增项目:

  • 1.遍历窗口
    排除弹窗、子窗口、提供接口对窗口标题进行排除
    见crtWin.ahk,函数ShouldDismissWindow

  • 2.保留机制
    任何情况下,窗口不变,则对应快捷键不变
    保留机制作为对冻结模式的重写与改进
    见主ahk文件

  • 3.窗口标识
    所有窗口以hwnd句柄作为标识,使用窗口信息对象
    info[句柄,快捷键,标题,程序路径]
    进行储存
    此对象作为对"以标题查找窗口"的重写与改进
    见主ahk文件窗口遍历部分

  • 4.图标获取
    优先使用WM_GETICON获取图标以加速
    见crtWin.ahk,函数GetWindowIconHandle

  • 5.配置加载
    完成了封装,修复了keys和固定搭配必须一一对应的bug。不会将固定搭配设置好的快捷键分配给固定搭配以外的程序
    见Loadcfg.ahk

  • 6.窗口菜单显示
    改用ListView实现,以进行更复杂的消息处理
    此控件作为对"用于显示窗口的弹出菜单"的重写与改进
    见WindowList.ahk

  • 7.GUI交互逻辑
    简述:
    7.1 可快捷键或鼠标滚轮选定窗口项,回车或空格转到此窗口
    7.2 转到其他窗口后,ListView即隐藏
    7.3 按下第一快捷键(默认F8),松开则隐藏ListView
    7.4 按下第二快捷键(默认鼠标中键),松开则转到选中的窗口项
    技术改动:
    全部改为在本窗口消息回调中处理,不会存在影响其他程序的可能
    此功能作为对"space2enter"的重写与改进
    见windowList_Proc.ahk

  • 8.其他
    格式化代码
    使用较清晰的变量命名
    抽离函数到各文件
    见addons文件夹以及主ahk文件的"; 包含文件"部分

TO-DO LIST

待更新…

曹操快切_1.52C
密码:4azx

2 个赞