Workspace Switcher 

2个月前发布 51 00

Workspace Switcher 是一款专为 Windows 10/11 用户设计的原生高性能工具,解决多显示器环境下窗口位置混乱、频繁插拔扩展坞导致布局重置等痛点。它通过全局热键和系统托盘,能够以像素级精度保存、恢复应用程序窗口的位置、状态(最大化/最小化/正常)以及任务栏固定项,实现不同工作场景(如编码、游戏、会议)之间的瞬间无缝...

所在地:
美国
收录时间:
2026-09-04
Workspace Switcher Workspace Switcher 

Workspace Switcher 是一款专为 Windows 10/11 用户设计的原生高性能工具,解决多显示器环境下窗口位置混乱、频繁插拔扩展坞导致布局重置等痛点。它通过全局热键和系统托盘,能够以像素级精度保存、恢复应用程序窗口的位置、状态(最大化/最小化/正常)以及任务栏固定项,实现不同工作场景(如编码、游戏、会议)之间的瞬间无缝切换。

Workspace Switcher 

核心亮点

  • 动态任务栏切换:
    • 不仅恢复窗口位置,还能根据工作区自动切换 Windows 任务栏的固定应用。例如,从“游戏模式”(Steam, Discord)一键切换到“工作模式”(VS Code, Teams)。
    • 支持静态固定:可将浏览器或文件资源管理器标记为所有工作区通用,保持常驻。
  • 像素级精确恢复:
    • 捕获并恢复 WINDOWPLACEMENT 结构,确保窗口在恢复时保持正确的状态(如从最大化恢复为特定尺寸的窗口),避免坐标失真或边框故障。
    • 完美支持多显示器混合 DPI 缩放(Per-Monitor V2 DPI Awareness)。
  • 纯本地与隐私安全:
    • 零服务器依赖:所有数据存储在本地 %APPDATA% 下的 JSON 文件中,采用原子写入机制防止损坏。
    • 无遥测:完全离线运行,不收集任何用户数据。
  • 智能窗口过滤与识别:
    • 通过 5 阶段验证管道过滤掉系统后台进程、UWP 幻影窗口、工具提示等无效句柄。
    • 自动提取高分辨率应用图标,提供直观的可视化界面。
  • 零延迟全局热键:
    • 使用独立的 Win32 消息线程(HWND_MESSAGE)处理热键注册,即使主程序最小化或全屏运行时也能瞬时响应,不阻塞 GUI 线程。

技术硬核细节

  • 稳健的窗口枚举:利用 DwmGetWindowAttribute (DWMWA_CLOAKED) 过滤隐藏窗口,结合窗口样式掩码排除非应用窗口。
  • 原子 JSON 持久化:使用临时文件写入后原子替换目标文件,确保配置文件在意外断电或崩溃时不会损坏。
  • 跨权限进程解析:通过 OpenProcess 和 QueryFullProcessImageName 绕过提权限制,准确获取所有进程的可执行文件路径。
  • 深层任务栏集成:直接操作注册表中的 Taskband 二进制流和 ShellLink 结构,实现真正的任务栏固定项快照与恢复,而非简单的快捷方式复制。

快速开始

1. 直接运行(推荐)

下载发布版中的单文件可执行程序:

./publish/WorkspaceSwitcher.UI.exe

2. 从源码构建

需要安装 .NET 8.0 SDK:

git clone https://github.com/yMaxM15/workspace-switcher.git
cd workspace-switcher
dotnet build WorkspaceSwitcher.sln -c Release
dotnet run --project src/WorkspaceSwitcher.UI

使用流程

  1. 创建配置:点击 + New,命名你的工作区(如 “Coding”, “Gaming”)。
  2. 调整布局:打开所需应用,排列好窗口位置和大小。
  3. 保存快照:在检查器中点击保存,系统将记录当前所有可见窗口的几何信息和任务栏状态。
  4. 绑定热键:为每个工作区分配全局热键(默认 Ctrl+Alt+1~5)。
  5. 一键切换:按下热键,所有窗口瞬间归位,任务栏图标同步更新。

相关导航