Skip to content

Repository files navigation

Edge 窗口显示/隐藏切换(全局热键版)

English | 中文

一个为 Microsoft Edge 设计的系统级全局热键扩展:按下热键把当前 Edge 窗口最小化(隐藏)到任务栏,再按一次恢复显示。支持多窗口管理、真正隐藏、双热键、深色主题、中英文界面等大量自定义项。

🤝 本项目与 DeepSeek 共同制作

亮点:不同于普通浏览器扩展快捷键(只在浏览器前台生效),本项目通过 Native Messaging + 原生宿主程序注册系统级热键——在任何程序前台都能触发,并能精确识别 Edge(msedge.exe),不会误操作其它 Chromium 应用(Chrome / QQ / 哔哩哔哩等)。


✨ 特性

  • 🎹 系统级全局热键:任何程序在前台都能触发隐藏/显示
  • 🎯 只作用于 Edge:通过进程名精确识别,绝不误伤其它 Chromium 应用
  • 🪟 多窗口管理:所有 Edge 窗口一起隐藏/恢复,叠放顺序可保持原序反转
  • 👻 真正隐藏模式:窗口连任务栏图标一起消失,仅热键可唤回
  • 🔁 备用快捷键:第二组热键,与主热键行为完全一致
  • 🔊 音效反馈:隐藏/恢复提示音(可开关)
  • 🌗 界面主题:浅色 / 深色 / 跟随系统
  • 🌐 中英文界面:一键切换
  • 💾 配置导入/导出:JSON 备份与迁移,换电脑一键恢复
  • ⚙️ 共 10+ 项可自定义设置,全部改动即时生效

🔧 工作原理

Edge 扩展(MV3:弹窗 / 设置页 / 教程页)
    ↕ Native Messaging
原生宿主程序 EdgeWindowToggleHost.exe(C#,系统自带 .NET Framework 编译)
    → Win32 RegisterHotKey 注册系统级热键(任何程序前台都触发)
    → 精确识别 msedge.exe 窗口 → 最小化 / 真正隐藏 / 恢复

浏览器扩展本身无法注册全局热键(chrome.commands 只在浏览器前台生效),因此需要原生宿主程序配合。这也是所有同类扩展(密码管理器等)的标准做法。

📦 安装

  1. 打开 Edge,进入 edge://extensions/,打开左下角「开发人员模式
  2. 点击「加载解压缩的扩展」,选择本项目文件夹(edge-window-toggle
  3. 双击 install.bat(自动识别扩展 ID、生成配置、写入注册表,无需管理员权限)
  4. 完全退出并重新打开 Edge(确认任务管理器中没有 msedge.exe 残留,或临时关闭 Edge 的「启动加速」)
  5. 点击工具栏上的扩展图标,显示「已连接,全局热键生效中」即安装成功

卸载:双击 uninstall.bat → 在 edge://extensions 移除扩展 → 删除文件夹。

🎮 使用

操作 行为
在 Edge 窗口按热键 隐藏(最小化)所有 Edge 窗口
在任何程序按热键 恢复所有 Edge 窗口,之前在前台的窗口重新获得焦点
修改热键/选项 扩展图标 → 「打开设置」→ 修改后立即生效
查看教程 扩展图标 → 「使用教程」

默认热键:Ctrl+Alt+Q(可在设置页修改,支持备用热键)

⚙️ 可自定义项(设置页「更多选项」)

选项 可选值
隐藏方式 最小化到任务栏 / 真正隐藏(任务栏也消失)
操作范围 所有 Edge 窗口一起 / 仅当前前台窗口
恢复后聚焦 带回前台 / 不抢焦点
恢复顺序 保持原序(1,2,3) / 反转(3,2,1)
音效反馈 开 / 关
界面主题 浅色 / 深色 / 跟随系统
界面语言 中文 / English
备用快捷键 第二组任意组合(可单独保存)

📁 目录结构

edge-window-toggle/
├── manifest.json          # MV3 清单
├── background.js          # Service Worker(管理宿主连接)
├── popup.html/js          # 工具栏弹窗
├── options.html/js        # 设置页(全部自定义项 + 配置导入导出)
├── help.html/js           # 使用教程页
├── common.js              # 通信辅助
├── lang.js                # 中英文词典
├── install.bat            # 一键安装(自动识别扩展 ID)
├── uninstall.bat          # 一键卸载
├── tutorial.html/pdf      # 离线使用教程
├── icons/                 # 扩展图标
└── native-host/
    ├── Host.cs            # 原生宿主源码(C#,RegisterHotKey + 窗口管理)
    ├── install-host.ps1   # 编译宿主 + 生成 host.json + 写注册表
    └── uninstall-host.ps1 # 卸载注册表项

🛠️ 开发

  • 扩展:Manifest V3(Service Worker + 弹窗 + 设置页),无第三方依赖
  • 宿主:C#,使用系统自带 csc.exe(.NET Framework 4.x,Windows 10/11 自带)编译,无额外运行时
  • 国际化lang.js 中英双语词典,data-i18n 属性 + t() 函数驱动
  • 配置:宿主持久化到 %APPDATA%\EdgeWindowToggle\config.json

⚠️ 常见问题

  • 弹窗显示「未连接」:确认已运行 install.bat;完全退出并重启 Edge;检查注册表 HKCU\Software\Microsoft\Edge\NativeMessagingHosts\com.edge.windowtoggle
  • 热键注册失败:该组合被系统或其它程序占用(如 Win+L、Alt+Tab、常见输入法/截图工具),换一个组合即可。
  • 移动文件夹后失效:解压扩展的 ID 由文件夹路径决定,移动后请重新运行 install.bat(会自动按新路径重算)。
  • 查看日志%APPDATA%\EdgeWindowToggle\host.log

📄 License

MIT · 本项目与 DeepSeek 共同制作

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages