v1.4.0
SimplePlugins 功能迁移 & 远程交互增强 & MCP 扩展 & 国际化
历时约 35 天,跨 23 次提交。本版本核心是将 SimplePlugins 的三个常用功能(文件管理 / 隐私屏幕 / 远程画板)原生迁移进 YAMA 客户端,以在线主机右键「实验功能」子菜单的形式交付;同时带来远程交谈、TCP/UDP 连接管理、主机管理等远程交互增强,MCP 服务端扩展出设备管理控制工具(进程 / 窗口 / 服务 / 电源),授权失败触发器,以及德语支持与语言切换等国际化改进。
SimplePlugins 功能迁移(实验功能)
- 文件管理:将 SimplePlugins 的
CFileManager/MasterEncoder/ Info-Zip 源码迁入客户端(client/file/),隔离在SimplePluginsFile命名空间避免冲突;新增COMMAND_FILE_MANAGER_PLUGIN(163),复用既有TOKEN_DRIVE_LIST_PLUGIN对话框 - 隐私屏幕(虚拟桌面):采集层重写——
CScreenHideSpy改为继承 YAMA 的::CScreenSpy(vDesk=TRUE),采集与编码复用 YAMA 编码管线;新增COMMAND_PRIVATE_SCREEN_PLUGIN(164) - 远程画板:
DrawingBoardMgr隔离在SimplePluginsDrawingBoard命名空间,在透明置顶分层窗口绘制画笔路径与文字;新增COMMAND_DRAWING_BOARD_PLUGIN(165) - 菜单接线:在线主机右键「实验功能」二级子菜单(文件管理 / 隐私屏幕 / 远程画板),并为三个菜单项配 16x16 图标
客户端特性:三个「实验功能」需客户端升级至 v1.4.0 才可用;服务端已具备对应对话框与命令。
MCP 设备管理控制工具
- P7 管理控制工具:在单一
McpManage开关(并需McpReadonly=0)后新增kill_process/operate_window/control_service/power_action四个写工具 - ready→confirm 生命周期:写工具在其子连接上执行 ready→confirm,区分同一
TOKEN_*LIST的两次到达;写命令与后续刷新分两次发出,之间WaitSendIdle()排空出站缓冲 - 配置与入口:
McpSettingsDlg新增「管理操作」勾选,主工具栏新增 MCP 入口按钮
安全边界:管理控制工具默认关闭,需在「扩展 > MCP 设置」勾选「管理操作」并关闭只读、重启主控后启用。
远程交互增强
- 远程交谈(双向聊天):
COMMAND_CHAT(161) 打开既有 CChat 对话框,支持服务端触发屏幕锁 / 解锁 - TCP/UDP 连接管理:对话框列出受管主机 TCP/UDP 连接,右键强制断开 IPv4 TCP;客户端经 iphlpapi(IPv4+IPv6)枚举
- 主机管理:迁移 SimplePlugins 的
CMachineManager(进程 / 窗口 / 网络 / 软件 / 服务 / 任务 / hosts 枚举 + 进程注入) - 远程桌面剪贴板按钮:工具栏新增「获取剪贴板」(C) 与「设置剪贴板」(P) 按钮,全屏模式下仍可达
触发器系统
- 授权失败触发:新增
TRIGGER_AUTH_FAILED,主机授权失败时(V1 / V2)向客户端发送配置的插件 DLL,受ShouldLogAuth去重约束;设置对话框按当前选中触发类型回显插件勾选
移动端音频
- iPhone 远程音频:iOS WebKit 无 WebM/Opus 的 Media Source Extensions,新增 Web Audio API 回退路径,用
opus-decoderWASM 解码 Opus;解码包改为自托管(Go 与 C++ 服务端均提供),不再依赖 CDN
画质与传输控制
- 远程桌面质量等级:「高级」菜单编辑 6 档 QualityProfile(最大 FPS / 最大宽度 / 编码算法 / 码率),持久化到
[quality] - 屏幕预览质量等级:编辑 6 档 PreviewProfile(目标编码宽度 / JPEG 质量)
- 文件传输速度对话框:双向控制传输速度,7 档预设 + 无限档,下载经
CMD_FILE_SPEED下发
协议与部署
- Shine/HELL 协议选择:分享 / 传输主机时选择 Shine(0) 或 HELL(1),旧客户端忽略新增字段回退内置 HELL
- Go Web UI 子路径部署:可选
YAMA_WEB_BASE_PATH将整个 Web UI 挂载到 URL 前缀(如/remoter)
国际化
- 德语(de_DE):第 4 种界面语言,键与
en_US.ini逐字节一致(2028 行),德语值用纯 ASCII 转写 - 语言切换工具栏按钮:「Lang/语言」按钮,中文读者无需懂英文即可切换语言
- 剩余字符串翻译补齐:最后一处未翻译中文界面串走
_TRF/_TR/_L,en_US / zh_TW 各 +24 条
改进
- 通知设置多行关键词输入:单行、分号分隔的关键词字段改为带垂直滚动条的多行编辑框,每行一个关键词;加载时按 UTF-8 解码,修复非 ASCII 关键词往返
Bug 修复
- HTTP 分片续包状态机误判:大包(>1460 字节进程列表)被 MSS 分片时第二片误置
m_bShouldUnmask,导致「首包成功、后续包消失」;仅在连接尚未确定为 HTTP 时清除标志 - 即时消息弹窗标题乱码:标题存为 UTF-8 而 .rc 声明 GBK,资源编译器误解码;转为 GBK 匹配声明
- geo-IP 查询阻塞双击提示:
GetGeoLocation在 UI 线程同步发起最多 3 次 HTTP 请求;改为仅本地库加载时查询并缓存 - 主机管理 IE 历史泄漏、隐私屏幕 0xCC 乱码日志 等
升级提示
- 实验功能为客户端特性:文件管理 / 隐私屏幕 / 远程画板需客户端升级至 v1.4.0
- MCP 管理控制工具默认关闭:需勾选「管理操作」并关闭只读、重启主控后启用
- 授权失败触发器:需为「授权失败」类型单独配置插件,与「主机上线」触发相互独立
- 文件传输速度:上传速度重启后生效;下载速度经
CMD_FILE_SPEED下发 - Shine/HELL 协议:默认勾选 Shine,兼容旧服务端与 share_list 条目