0.1.4 · 零 DLL 注入

给每一个 Windows 窗口加上浏览器式标签

把 IDE、终端、浏览器、资源管理器收进同一个标签组。拖上去合并,拖出来拆分。 TabNest 只管理窗口,不进任何进程,也不碰你的文件。

VS Code
终端
Chrome
资源管理器

当前活动窗口

分组栏贴在窗口上方。Win + ` 切到下一个标签。

为什么是这样

同类工具几乎都靠注入。我们故意不这么做。

注入能把标签画进真正的标题栏,代价是进到浏览器和密码管理器的进程里。 TabNest 待在外面:观察走 WinEvent,操作走普通窗口 API。

零 DLL 注入

不向任何进程装载代码。崩溃半径止于自己;杀软与沙箱也少一层敏感行为。

11.3 MB,双击即用

裁剪后的自包含单文件。不装 .NET,不装 VC++,不要管理员权限。

窗口随时可还原

每次改窗口位置之前先落盘快照。崩溃、强杀、卸载,窗口和任务栏按钮都会回去。

空闲开销测不出来

空闲时的 CPU 占用压在测量分辨率的地板上,工作集约 32 MB。没有轮询,每一次唤醒都对应真实窗口事件。

开关必须真的有效

设置里的每一项都有测试断言「改了之后行为不同」。点了没反应比没有这个开关更糟。

普通用户权限

清单是 asInvoker。提权反而会因为完整性级别对不上,让一部分窗口分不了组。

对照 Groupy 2

数字来自同一台机器的实测,不是估算。

标本是 Groupy 2 v2.3.1 与 TabNest 0.1.4,Windows 11 26100 x64,空闲 20 秒。 你的数字会不同。把标签画进原生标题栏必须在目标进程内执行代码,TabNest 不做这件事 —— 不是还没做,是不打算做。

TabNest Groupy 2
许可MIT,开源商业,闭源
向其他进程注入测试机 46 个进程
常驻工作集31.9 MB78 MB
空闲 CPU单核 0.00~0.08%单核 0.08%
线程数1130
句柄数344706
下载体积11.3 MB 单文件24.6 MB 安装包
标签画进原生标题栏无,刻意如此
替换资源管理器原生标签
代码签名暂无

空闲 CPU 那一行是打平,不是赢:单核 0.08% 在 20 秒里就是 16 毫秒,一个调度时钟节拍, 也就是这种测法的分辨率地板,Groupy 落在同样的 16 毫秒上。这里如实写出来, 是因为本表早先的版本声称过一个数据并不支持的差距。

Groupy 确实更强的地方:集成标签、原生标签替换、文档级规则、悬停预览、已签名的二进制, 以及多年积累的兼容性工作。前四项都要求在别人的进程里跑代码。 如果你需要标签画在真正的标题栏里,那就买 Groupy —— 它是个好产品。

安装

Windows 10 2004+ / Windows 11,x64。

安装包提供开始菜单和开机自启。也可以只下 exe,放到任意目录双击。 配置在 %LOCALAPPDATA%\TabNest\,卸载时保留。

这是未签名版本

没有 Authenticode 证书。首次运行 SmartScreen 可能提示「Windows 已保护你的电脑」。

  1. 点「更多信息」,确认文件名是 TabNest.exe 或 TabNest-setup.exe。
  2. 校验哈希:Release 页面列了两个文件的 SHA256。
  3. 再点「仍要运行」。安装包和装好的程序可能各拦一次。
  4. 杀软若隔离,只从本仓库的 GitHub Release 恢复。
  5. 需要签名版请自行购买 OV 证书再签;官方不提供已签名二进制。