PowerToys 作为 Windows 11/10 平台上备受欢迎的官方免费工具集,即将迎来一项重要的底层架构升级。该项目贡献者 Noraa Junker 近日发布博客文章,透露正在将 PowerToys Runner 从 C++ 语言重构为 C# 语言,这样不仅可以简化代码结构、提升开发效率,还能为开源社区创造更友好的贡献环境。

PowerToys 功能概览
PowerToys 是微软面向高级用户推出的官方工具集,最初灵感源自 Windows 95 时代的同名经典工具。该应用集成了多种实用功能,帮助用户深度定制操作系统体验。其热门功能包括:
- Always on Top:将任意窗口置顶显示
- FancyZones:创建自定义窗口布局
- PowerToys Run:快速启动应用、文件和命令
- Advanced Paste:高级剪贴板功能
- Peek:快速预览文件内容
- Color Picker:屏幕取色工具
- 批量文件重命名与图片尺寸调整等
重构背景与技术动机
PowerToys Runner(即 powertoys.exe,负责根据用户设置启动各模块、管理进程以及在设置界面与模块之间传递指令)目前依赖多个 C++ 项目导出 DLL 的方式实现。Junker 在博客中指出,这种架构被描述为”混乱、过度设计且难以维护”。
现有的 C++ 代码库缺乏灵活性,这不仅拖慢了新功能的开发进度,也对潜在贡献者形成了门槛。通过迁移至 C#,项目维护者和贡献者将获得更快的构建速度、更简便的调试体验,以及更易于理解的开源代码库。
架构改进与预期收益
重构后,每个模块将由单一类实现 IPowerToyModule 接口。这种整合方式将减少所需项目数量,简化编译流程,并消除处理配置文件时的冗余代码。Junker 表示,此次重构将显著降低底层代码的复杂度。
发布计划与时间表
据 Junker 透露,Runner 重构的 Pull Request 已接近完成,但最终合并需等待 .NET 10 升级完成后进行。届时,新版 Runner 将随之更新并合并入主分支。对于普通用户而言,虽然这些改动主要体现在底层,但有望带来更流畅的更新体验以及更快的新功能交付速度。
相关 Pull Request 可在 GitHub 官方仓库 查看。