Files
ProcessDock/README.md

88 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

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