88 lines
3.2 KiB
Markdown
88 lines
3.2 KiB
Markdown
# 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 需求证据与验收范围
|
||
```
|