13bb37585f8734594f4f6d9b0f74a2ba104f4b36
ProcessDock
ProcessDock 是一个使用 Python 和 PySide6 编写的 Windows 原生进程/端口管理工具。它读取本机的真实进程与监听端口,并提供搜索、自动刷新、进程详情和安全确认后的结束操作。
功能
- 查看正在运行的进程,以及 PID、CPU、内存、用户和状态
- 汇总 TCP 监听端口与 UDP 绑定端口,并支持根据端口反查进程
- 按进程名称、PID、端口、用户、路径或启动命令即时搜索
- 点击表格行,在右侧查看程序路径、启动参数、启动时间和父进程 PID
- 打开程序文件位置、复制启动命令、正常结束或强制结束进程
- 每 3 秒自动刷新,也可暂停自动刷新或手动刷新
- 后台线程采集数据,刷新时不阻塞窗口
- 结束前二次确认,并校验进程创建时间,避免 PID 复用导致误操作
环境要求
- Windows 10/11
- Python 3.10 或更高版本(已在 Python 3.11 上验证)
建议使用虚拟环境:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
启动
python app.py
不需要控制台窗口时,也可以运行 pythonw ProcessDock.pyw;在 Python 文件关联正常的 Windows 环境中可直接双击 ProcessDock.pyw。
若不希望启动后开启自动刷新:
python app.py --no-auto-refresh
部分系统进程的路径、命令行、端口或结束权限受 Windows 限制。需要管理这些进程时,可右键 PowerShell 或终端并选择“以管理员身份运行”,再启动 ProcessDock。
测试
python -m unittest discover -s tests -v
打包为 EXE
在 PowerShell 中运行:
.\build_exe.ps1
脚本会生成图标、运行测试并构建单文件 GUI 程序,输出位置为 dist\ProcessDock.exe。目标电脑不需要安装 Python;首次启动单文件程序时需要解压 Qt 运行库,因此会比后续启动稍慢。
无窗口界面冒烟测试可以这样运行:
$env:QT_QPA_PLATFORM="offscreen"
python -m unittest tests.test_gui -v
行为说明
- 端口列表聚焦于服务端口:TCP 仅显示
LISTEN,UDP 显示已绑定的本地端口,不展示大量临时的出站连接端口。 - CPU 使用率按所有逻辑核心归一化。Windows 使用批量性能计数器;非 Windows 兼容模式的第一次刷新用于建立采样基线。
- “正常结束”在 Windows 上调用不带
/F的taskkill;“强制结束”直接终止进程。强制结束可能丢失未保存的数据。 - ProcessDock 会保护自己的进程,防止从界面中结束自身。
- 本工具只操作当前计算机,不连接远程服务、不上传进程数据,也不使用数据库。
项目结构
app.py 程序入口
ProcessDock.pyw 无控制台窗口入口
processdock/services.py 进程采集、端口映射和系统操作
processdock/models.py 表格模型、筛选和操作按钮代理
processdock/ui.py PySide6 主窗口与详情面板
processdock/styles.py GUI 主题样式
tests/ 自动化测试
docs/blueprint.md 需求证据与验收范围
Description
Languages
Python
98.5%
PowerShell
1.5%