Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PintoTop

一个轻量的 Windows 窗口置顶工具。通过全局热键一键切换任意窗口的置顶状态,程序驻留系统托盘,无主窗口打扰。

功能

  • 全局热键 Ctrl+Shift+Space:切换当前活动窗口的置顶状态
    • 按一次 → 置顶当前窗口(始终显示在最上层)
    • 再按一次 → 取消置顶
  • 系统托盘常驻:启动后无主窗口,仅在右下角托盘显示图标
  • 已置顶窗口管理:右键托盘图标可查看所有已置顶窗口列表,单独取消或全部取消
  • 退出自动清理:退出程序时自动取消所有已置顶状态,不遗留
  • 单实例保护:防止重复启动导致的热键冲突

截图

(待补充)

安装

环境要求

  • Windows 10 / 11
  • Python 3.10+

安装依赖

pip install -r requirements.txt

依赖清单:

  • PySide6 - Qt GUI 框架(托盘图标、菜单)
  • pywin32 - Windows API 调用(窗口置顶、全局热键)

运行

带控制台(调试用)

python -m pintotop

无控制台(日常使用)

pythonw pintotop.pyw

双击 pintotop.pyw 也可直接启动,不会弹出控制台窗口。

使用方法

  1. 启动程序,右下角托盘出现橙色图钉图标,同时弹出启动提示。
  2. 切到想要置顶的窗口(如记事本、浏览器、微信等)。
  3. Ctrl+Shift+Space,托盘弹出气泡提示"已置顶:xxx",该窗口现在始终在最上层。
  4. 再按 Ctrl+Shift+Space,取消置顶。
  5. 右键托盘图标:
    • 查看已置顶窗口列表(点击列表项可单独取消)
    • "取消所有置顶" - 一键取消全部
    • "退出" - 退出程序(自动取消所有置顶)

项目结构

PintoTop/
├── pintotop/
│   ├── __init__.py          # 包定义、版本号
│   ├── __main__.py          # 入口:python -m pintotop
│   ├── app.py               # 应用主控:QApplication、单实例锁、热键、托盘、退出清理
│   ├── hotkey.py            # 全局热键:独立线程 + RegisterHotKey + Qt Signal
│   ├── pin_button.py        # 置顶管理器:维护已置顶窗口集合
│   ├── tray.py              # 系统托盘:图标 + 右键菜单 + 已置顶列表
│   └── winapi.py            # Windows API 封装:置顶/查询/窗口信息
├── pintotop.pyw             # 无控制台启动入口
├── requirements.txt         # 依赖清单
└── README.md

技术实现

全局热键

使用 Windows RegisterHotKey API 注册全局热键,在独立线程中运行消息循环监听 WM_HOTKEY 消息,通过 Qt Signal 跨线程安全地通知主线程执行置顶操作。

窗口置顶

调用 SetWindowPos 配合 HWND_TOPMOST / HWND_NOTOPMOST 标志切换窗口的置顶状态,通过查询 WS_EX_TOPMOST 扩展样式判断当前是否已置顶。

单实例保护

使用 Windows 命名互斥体(CreateMutexW)实现单实例锁,防止重复启动导致的热键冲突。

局限

  • 以管理员权限运行的程序(如任务管理器、注册表编辑器)需要 PintoTop 也以管理员身份运行才能置顶。
  • 热键 Ctrl+Shift+Space 若被其他程序占用会注册失败,程序会通过托盘气泡提示。

开发

技术栈

  • 语言:Python 3.10+
  • GUI:PySide6 (Qt 6)
  • Windows API:pywin32

打包

可使用 PyInstaller 打包成单可执行文件:

pip install pyinstaller
pyinstaller --noconsole --onefile --icon assets/tray.ico pintotop.pyw

License

MIT

About

简单工具,置顶窗口

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages