Repository navigation
Releases: F3rcc/TopPin
Release list
v0.4.2
Full Changelog: v0.4.0...v0.4.2
v0.4.0
新增:托盘菜单「关闭通知 / 开启通知」
- 一键静默所有气泡提示(启动提示、置顶/取消提示、配置重载提示、快捷键冲突提示)
- 菜单文字随状态变化,开着时显示「关闭通知」,关掉后显示「开启通知」
- 状态写回
TopPin.ini的Notify,重启后保持;也可以直接改这个键 - 提权确认的对话框不受影响(那种提示不应该被静默)
当前完整功能
- 热键可配置:
Hotkey/OpacityUpHotkey/OpacityDownHotkey全部写在TopPin.ini - PowerToys 同款边框:跟随系统主题色、4px、随窗口圆角、DPI 自适应、RGB/粗细/圆角/开关均可配
- 窗口不透明度调节:
Ctrl+Win+=/Ctrl+Win+-,10% 一步,20%–100%,取消置顶自动还原 - 游戏时不激活:独占全屏运行中不响应置顶
- 拖动不掉帧:事件驱动跟随,实测落后 0px
- 托盘菜单:切换置顶 / 已置顶窗口 / 取消全部 / 重新加载配置 / 打开配置文件 / 关闭通知 / 开机自启 / 管理员重启 / 退出
实测
Notify切换1 → 0 → 1正常,写回后 ini 的注释与 UTF-16 BOM 均未被破坏- 重启后状态保持
- 编译 gcc 零警告,单文件 66,048 字节
Full Changelog: v0.3.1...v0.4.0
二创声明:本项目基于 chiimyen/TopPin(MIT, © 2026 chiimyen)二次创作,
并把 Microsoft PowerToys 的 AlwaysOnTop 模块的
边框外观 / 不透明度调节 / 游戏模式判定 / 拖动跟随策略移植过来(MIT, © Microsoft Corporation)。
C 实现为本分支自行编写,渲染管线不同(PowerToys 用 Direct2D,本项目用 GDI 位图 + 距离场抗锯齿)。
与 Microsoft 及 PowerToys 官方无任何关系。逐文件对照与许可全文见 ATTRIBUTION.md。
v0.3.1
修复:拖动时边框一卡一卡
之前边框只在 100 ms 定时器里追窗口位置(10 Hz),且位置一变就全量重绘(读注册表取主题色 + 分配清零 3 MB 位图 + 逐像素 + 整面提交)。
现在照 PowerToys 的做法把两条路分开:
- 注册
SetWinEventHook(EVENT_OBJECT_LOCATIONCHANGE)与EVENT_SYSTEM_MOVESIZEEND,
回调里按 hwnd +OBJID_WINDOW过滤,命中只做一次SetWindowPos(SWP_NOSIZE | SWP_NOREDRAW)——只挪不画 - 100 ms 定时器保留,仍负责重绘内容与校正;只有尺寸/粗细变化才回退完整重绘
- 主题色改为缓存(启动与「重新加载配置」时读一次)
实测(同一脚本 A/B,每步移动 6px,共 400 步)
| 边框最大落后 | 完全跟上 | 拖动中 CPU | |
|---|---|---|---|
| 旧版 | 42 px | 42/400 | 2.59% 单核 |
| 本版 | 0 px | 400/400 | 1.73% 单核 |
Full Changelog: v0.3.0...v0.3.1
二创声明:本项目基于 chiimyen/TopPin(MIT, © 2026 chiimyen)二次创作,
并把 Microsoft PowerToys 的 AlwaysOnTop 模块的
边框外观 / 不透明度调节 / 游戏模式判定 / 拖动跟随策略移植过来(MIT, © Microsoft Corporation)。
C 实现为本分支自行编写,渲染管线不同(PowerToys 用 Direct2D,本项目用 GDI 位图 + 距离场抗锯齿)。
与 Microsoft 及 PowerToys 官方无任何关系。逐文件对照与许可全文见 ATTRIBUTION.md。
v0.3.0
新增
- 置顶边框照 PowerToys
AlwaysOnTop重做:矩形取DWMWA_EXTENDED_FRAME_BOUNDS向外扩 thickness,
圆环画在窗口外侧(只压 1px,不遮内容);圆角半径跟随窗口的DWMWA_WINDOW_CORNER_PREFERENCE;
默认跟随系统主题色、4px、100% 不透明、DPI 自适应。 - 窗口不透明度调节:
Ctrl+Win+=/Ctrl+Win+-,每次 10%,范围 20%–100%,
只对已置顶窗口生效,取消置顶时还原原始的 layered/alpha/colorkey 状态。 - 游戏时不激活:
SHQueryUserNotificationState() == QUNS_RUNNING_D3D_FULL_SCREEN时置顶热键不响应,默认开启。 - 渲染用 GDI 位图 + 圆角矩形距离场算抗锯齿(PowerToys 用 Direct2D),只遍历四边边框带,中间像素跳过。
- manifest 增加 PerMonitorV2 DPI 感知;热键支持
- = , . ; / [ ] \ '和反引号。
实测
- 边框矩形 = 目标扩展边框四周各外扩
厚度的 DPI 缩放值(125% 缩放下 4px→5px),像素级对齐 - 边框像素 = 系统主题色(
#0078D7) - 不透明度 90/80/70/60% → alpha 229/204/178/153,与
255*p/100一致
Full Changelog: v0.2.0...v0.3.0
二创声明:本项目基于 chiimyen/TopPin(MIT, © 2026 chiimyen)二次创作,
并把 Microsoft PowerToys 的 AlwaysOnTop 模块的
边框外观 / 不透明度调节 / 游戏模式判定 / 拖动跟随策略移植过来(MIT, © Microsoft Corporation)。
C 实现为本分支自行编写,渲染管线不同(PowerToys 用 Direct2D,本项目用 GDI 位图 + 距离场抗锯齿)。
与 Microsoft 及 PowerToys 官方无任何关系。逐文件对照与许可全文见 ATTRIBUTION.md。
v0.2.0
新增
- 热键可配置:不再写死
Ctrl+Alt+T,改TopPin.ini即可;托盘菜单可「打开配置文件」与「重新加载配置」。 - 置顶边框高亮(首版):被钉住的窗口四周显示一圈彩色边框。
说明:v0.2.0 的边框是整圈压在窗口边缘的样式,已在 v0.3.0 替换为 PowerToys 同款外观。
Full Changelog: https://github.com/F3rcc/TopPin/commits/v0.2.0
二创声明:本项目基于 chiimyen/TopPin(MIT, © 2026 chiimyen)二次创作,
并把 Microsoft PowerToys 的 AlwaysOnTop 模块的
边框外观 / 不透明度调节 / 游戏模式判定 / 拖动跟随策略移植过来(MIT, © Microsoft Corporation)。
C 实现为本分支自行编写,渲染管线不同(PowerToys 用 Direct2D,本项目用 GDI 位图 + 距离场抗锯齿)。
与 Microsoft 及 PowerToys 官方无任何关系。逐文件对照与许可全文见 ATTRIBUTION.md。