# screen-uploader **Repository Path**: oywb33/screen-uploader ## Basic Information - **Project Name**: screen-uploader - **Description**: 捕捉 Windows 指定窗口 / Android 手机屏幕截图,按配置间隔实时上传到服务端。 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-18 - **Last Updated**: 2026-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实时截图上传工具 捕捉 Windows 指定窗口 / Android 手机屏幕截图,按配置间隔实时上传到服务端。 ## 目录结构 ``` screen-uploader/ ├── config.json # 配置文件(服务端地址、token、目标窗口、间隔等) ├── common.py # 公共工具:配置加载、上传(带重试) ├── capture_windows.py # Windows 窗口截图客户端 ├── capture_android.py # Android 手机截图客户端(adb) ├── server.py # 接收服务端(Flask) └── requirements.txt ``` ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 配置说明(config.json) | 字段 | 说明 | |---|---| | `server.url` | 服务端上传接口地址 | | `server.token` | Bearer Token 鉴权(服务端与客户端需一致,留空则不校验) | | `server.retry` / `retry_delay` | 上传失败重试次数与间隔 | | `capture.window_title` | 目标窗口标题(支持正则匹配) | | `capture.process_name` | 目标进程名,如 `chrome.exe`(与标题二选一) | | `capture.interval` | 截图间隔(秒) | | `capture.image_format` | `png` 或 `jpg`(jpg 可设 `image_quality` 减小体积) | | `capture.save_local` | 是否本地留存副本(存到 `local_dir`) | | `android.adb_path` | adb 路径(需自行安装 platform-tools) | | `android.serial` | 多设备时指定序列号 | 服务端监听地址可通过 `server.host` / `server.port` 字段调整(默认 `0.0.0.0:8000`)。 ## 使用步骤 ### 1. 启动服务端(在一台服务器或本机) ```bash python server.py ``` 浏览器打开 `http://127.0.0.1:8000/` 可看到实时预览页(每 2 秒自动刷新最新截图)。 ### 2. Windows 端捕获 ```bash # 按 config.json 配置运行 python capture_windows.py # 临时指定窗口标题(支持正则) python capture_windows.py --title "记事本" # 按进程名捕获 python capture_windows.py --process chrome.exe ``` - 使用 Win32 `PrintWindow` API,**目标窗口被遮挡也能截到** - 窗口关闭/最小化后自动重新查找,Ctrl+C 停止 > **窗口标题匹配规则**:先做完整精确匹配,再做正则匹配。 > 若关键字可能命中其它窗口(例如终端窗口标题里含有关键字),可用锚定写法: > `--title "记事本$"` 只匹配以“记事本”结尾的窗口。 ### 3. Android 手机捕获 手机开启 USB 调试并连接(或 `adb connect :` 无线连接): ```bash python capture_android.py python capture_android.py --serial <设备序列号> ``` ## 服务端接口 | 方法 | 路径 | 说明 | |---|---|---| | POST | `/api/upload` | multipart 表单,字段 `image`,Header `Authorization: Bearer ` | | GET | `/api/latest` | 最新截图信息(JSON) | | GET | `/images/` | 获取指定截图文件 | | GET | `/` | 实时预览页 | ## 注意事项 - 生产环境建议将服务端置于 HTTPS 反向代理(Nginx)之后,避免明文传输。 - 截图频率过高会占用带宽,`jpg` + `quality=70` 可显著减小体积。 - 仅可用于自己拥有权限的设备与程序(如远程监控自己的设备、自动化测试留档),请勿用于侵犯他人隐私。