Files
ProcessDock/README.md

88 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 需求证据与验收范围
```