Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Python 实现

零第三方依赖:GUI 用标准库 tkinter,Win32 用 ctypes,JSON 用 json—— 六种实现中上手成本最低的一版。

运行

pythonw super_topmost.py    # 推荐:无控制台窗口
python super_topmost.py     # 会附带控制台(调试时可看 [uiaccess] 日志)
python -m py_compile super_topmost.py   # 语法检查

文件结构

super_topmost.py   # 全部实现(单文件,约 680 行)

实现要点

  • 置顶开关用 tkinter 原生 APIroot.attributes("-topmost", True/False); UIAccess 进程中内核会自动把置顶窗口放进更高的 Band;
  • 提权链路重启自身时自动改用同目录的 pythonw.exewindowless_python()),避免链路中途闪现控制台;
  • 后台 threading.Thread 执行 acquire/drop,结果经 queue.Queue 回投, Tk 主线程以 after(100) 轮询消费——tkinter 非线程安全,禁止跨线程直调 UI;
  • SYSTEM worker 有身份自检日志(worker: 运行身份=...),若计划任务主体 被降级为普通用户会立刻在日志显形;
  • 任务 XML 以 UTF-16 LE 带 BOM 写出——缺 BOM 时 schtasks 按 ANSI 解析 直接报「任务 XML 格式错误」(本项目实测踩过的坑)。

已知环境差异

  • 新版 Python 安装管理器(AppData\Local\Python\...)的 python.exe 是一个 垫片进程,真正的解释器是其子进程;这不影响本脚本运行, 但用 PID 查找窗口时需要按进程树查找;
  • Windows 商店版 Python 同理。