diff --git a/agent/src/input.rs b/agent/src/input.rs index 9ed19f9..e2e9f0d 100644 --- a/agent/src/input.rs +++ b/agent/src/input.rs @@ -76,9 +76,15 @@ pub fn virtual_desktop() -> (i32, i32, i32, i32) { pub fn handle(ev: InputEvent) { match ev { InputEvent::MouseMove { x, y } => { - // 主控端已按虚拟桌面归一化,这里直接透传 0..65535 + // 归一化坐标系 = **被采集的那个输出**(capture 用 EnumOutputs(0), + // 即主屏;AuthOk 的 width/height 也是它)。 + // MOUSEEVENTF_ABSOLUTE 不带 VIRTUALDESK 时,0..=65535 恰好映射到 + // 主显示器——与采集空间一致。 + // 曾经带 VIRTUALDESK:多显示器机器上注入空间变成整个虚拟桌面 + // (比主屏宽),手机画面与指针位置系统性错位(2026-10-30 实测)。 + // 单显示器时两者重合,所以桌面端从未暴露此问题。 send_mouse( - MOUSEEVENTF_ABSOLUTE.0 | MOUSEEVENTF_VIRTUALDESK.0 | MOUSEEVENTF_MOVE.0, + MOUSEEVENTF_ABSOLUTE.0 | MOUSEEVENTF_MOVE.0, x as i32, y as i32, 0,