# 无界鼠标 · MouseShare 2.2.0

一套键盘鼠标控制多台 Windows 电脑的中文软件 KVM。同一局域网直连，不需要硬件切换器，不需要显示器共享。

支持 Windows 10 / Windows 11（x64）任意组合：
Win10 ↔ Win10、Win10 ↔ Win11、Win11 ↔ Win11。

## 主要功能

- 云尔账号登录，首次登录自动开始试用（天数以后台实时配置为准）。
- 正式版 ¥10，一个账号最多绑定 20 台设备，支持在线激活和付款截图申领。
- 鼠标无缝跨屏：鼠标移到本机屏幕边缘，自动进入相邻电脑。
- 一套键鼠控制多台：键盘、鼠标按键、滚轮完整转发。
- 屏幕布局：4×4 网格摆放设备，本机也可以拖动，支持自动横排/竖排。
- 剪贴板同步：文本、截图、文件。
- 文件传输：拖拽发送、复制粘贴、SHA-256 完整性校验。
- 文件页可直接查看、更改接收目录，路径会持久保存。
- 后台托盘运行：关闭或最小化窗口后继续工作。
- 深色 / 浅色两套主题，标题栏右上角一键切换（也可按 F5）。
- 已连接过的设备保留在“设备与历史记录”中，离线也能一键重连。
- 连接密钥直接显示在“设备”页，8 位大写字母/数字，方便查看和修改。
- 设备页把本机信息和“主控端/被控端填写密钥”的说明分框展示，照着做即可配对。
- 标题栏内置“问题反馈”，可把问题、联系方式和运行信息直接发送给开发者。
- 稳定性：心跳检测、断线提示、手动一键重连、AES-256-GCM 加密。
- Windows 锁屏控制：首次登录后自动配置系统助手，可在锁屏密码界面继续移动鼠标和输入密码。
- 与其他远程客户端共存：只过滤 MouseShare 自己注入的事件，避免 ToDesk、BilldDesk 等软件同时安装时吞掉键鼠输入。
- 标准 EXE 安装包：官网下载、后台自动更新统一使用安装程序；后台更新完成后自动重启到托盘。
- 固定尺寸窗口，没有最大化按钮，界面为中文。

## 快速开始

1. 在每台电脑上运行 `无界鼠标-2.2.0-setup.exe`，按提示完成安装。
2. 安装完成后从桌面或开始菜单运行“无界鼠标”。
3. 首次打开必须先登录云尔账号：填写邮箱和昵称，获取邮件验证码后登录；登录成功后自动开始试用，天数以云尔软件中心后台配置为准。已有正式版激活密钥也可以直接激活。
4. 右上角“账户”可以查看授权状态、打开付款码、提交付款截图或输入正式版激活密钥。
5. 首次运行时如果 Windows 防火墙弹窗，请勾选“专用网络”并允许访问。
   如果没有弹窗，打开“设置 → 网络与安全 → 修复防火墙”，按提示允许管理员操作。
   首次启动还会自动请求一次管理员授权，用于安装锁屏控制助手；允许后即可在锁屏密码界面继续控制。
6. 在“设备”页的“连接密钥”框里，把各台电脑改成完全相同的 8 位大写字母/数字，
   再点“应用”。也可以点“换一个”生成新密钥。
7. 回到“设备”页，等几秒会自动发现同一局域网内的电脑。首次点“连接”完成配对；
   后续默认自动连接已配对且在线的设备。设置里也可以切换为仅手动连接。
   如果一直发现不了，可用“手动添加”，输入对方 IP 和端口 `45873`。
8. 打开“屏幕布局”，选中下方设备，再点击 4×4 网格中它相对本机的位置。
   本机格子也可以直接拖动；例如对方在本机右边，就放到右侧格子。
   三台电脑可用“自动横排/竖排”一键摆放。
9. 把鼠标移到本机屏幕边缘，即可切到对应电脑；原路移回或按 `Ctrl+Alt+0` 返回本机。

## 快捷键

| 快捷键 | 功能 |
|---|---|
| `Ctrl+Alt+1` / `2` / `3` | 切换到第 1/2/3 台已连接电脑 |
| `Ctrl+Alt+0` | 立即回到本机 |
| `Ctrl+Alt+P` | 暂停 / 恢复共享 |
| `F1` / `F2` / `F3` / `F4` | 切换界面页（设备 / 布局 / 文件 / 设置） |
| `F5` | 切换深色 / 浅色主题 |

> 切换电脑时，键盘修饰键会一起切换；如果遇到个别快捷键冲突，按 `Ctrl+Alt+0` 回本机即可。

## 文件传输

有三种方式，按使用习惯选择：

1. **文件页发送**：把文件拖到虚线框，或点“选择文件”，再选择目标电脑。
2. **拖拽到屏幕边缘**：在资源管理器中拖动文件到本机屏幕边缘。程序会取消本地拖拽、传输文件，
   并在目标电脑当前窗口自动按 `Ctrl+V`。适用于资源管理器里的普通文件/文件夹。
   文件夹会自动压缩为 zip 后发送。
3. **复制粘贴**：在本机 `Ctrl+C` 复制文件，程序会自动传到已连接电脑；到目标电脑 `Ctrl+V`。
   如果不想自动传大文件，可在“设置 → 共享行为”关闭“同步剪贴板文件”。

接收到的文件保存在：

```
%USERPROFILE%\Downloads\无界鼠标接收
```

接收完成后文件也会放进剪贴板，可以直接粘贴到其他目录。

接收目录可以在“文件传输”页直接查看，点“更改”选择新文件夹，点“打开”立即打开。
路径会保存到本机设置，重启后仍然生效。

文件采用 32KB 分块传输，没有 100MB 限制；目标机需要足够的磁盘空间。每份文件都会校验 SHA-256，
传输中断或校验失败不会留下不完整文件。

## 安装与自动更新

- 官网只提供 EXE 安装包，不再分发便携 ZIP。
- 安装程序按当前用户安装，默认目录为 `%LOCALAPPDATA%\Programs\MouseShare`。
- 用户数据保存在 `%APPDATA%\MouseShare`，覆盖安装和卸载程序都不会删除连接密钥、账号授权和设置。
- 客户端检测到新版本后下载 EXE 安装包；如果正在控制或被控制，会等当前控制会话结束后再静默安装。
- 静默安装完成后客户端自动重启并最小化到托盘。

## 托盘与后台运行

- 点窗口右上角 `×` 或最小化按钮：窗口隐藏，程序继续在系统托盘运行。
- 双击托盘图标：重新打开主界面。
- 托盘右键菜单：打开主界面、屏幕布局、暂停/恢复、退出。
- “设置 → 常规”可以打开“开机自动启动”和“启动时最小化到托盘”。

要完全退出，请使用托盘菜单中的“退出”，不要只在任务管理器结束进程。

## 网络与安全

- 默认端口：TCP `45873`（控制/文件），UDP `45874`（局域网发现）。
- 设备发现只用于找到对方；真正连接必须通过连接密钥握手。
- 通信使用 AES-256-GCM 加密，密钥由双方共享连接密钥派生。
- 所有数据只在局域网内两台电脑之间传输，不经过任何服务器。
- 连接密钥固定为 8 位大写字母/数字，建议使用程序生成的随机密钥。

## 常见问题

**设备页搜不到另一台电脑**

- 确认两台电脑在同一网段（例如都是 `192.168.1.x`），不是访客网络/隔离网络。
- 确认 Windows 防火墙允许 `MouseShare.exe`，或点“设置 → 修复防火墙”。
- 检查路由器是否开启了“AP 隔离/客户端隔离”。
- 用“手动添加”输入对方 IPv4 地址和端口 `45873`。

**提示连接密钥不一致**

把所有电脑的连接密钥改成完全相同的 8 位大写字母/数字，保存后重新连接。

**鼠标移到边缘不切换**

- 确认设备已连接（设备卡片显示“已连接”）。
- 在“屏幕布局”里给该设备指定了位置。
- 设置里的“鼠标移出边缘切换”没有被关闭。
- 如果本机有多块屏幕，需要移到整个桌面最外侧的边缘。

**拖拽文件到边缘没有反应**

- 该方式目前针对 Windows 资源管理器拖拽；其他软件的拖拽可能无法识别。
- 文件会直接保存到目标电脑的“接收目录”，不再自动粘贴到当前窗口。
- 可以用“文件页”的拖拽/选择文件作为兜底，它不依赖资源管理器拖拽。

**断线后会自动重连吗**

默认会。已成功配对过的设备再次在线、连接密钥一致时，程序会直接自动连接。
同一设备连续失败 3 次后会停止自动尝试，等待手动处理；也可以在设置里切换为仅手动连接。
手动断开或“断开全部”后，不会立刻自动重连。

**能否在 Windows 锁屏密码界面输入**

可以。首次登录后程序会自动请求一次管理员授权，并把输入助手安装到
`%ProgramData%\MouseShare\MouseShareSecureInput.exe`。输入助手会在当前用户控制台会话的
Winlogon 安全桌面启动，通过本机随机令牌认证的命名管道转发键鼠。
如果取消了授权，可在“设置 → 网络与安全”点击“安装锁屏控制”重新配置。

**能否控制管理员权限窗口 / UAC 界面**

Windows 的 UIPI 限制：普通权限程序无法向管理员权限窗口注入输入。
如需控制管理员权限窗口，请以管理员身份运行无界鼠标。安装锁屏控制助手后，锁屏密码界面可使用锁屏输入桥。

**和 PowerToys 无界鼠标能同时运行吗**

不建议。两套程序都会安装全局键鼠钩子，可能互相抢占输入、造成重复转发或断链。

**首次运行被 SmartScreen 拦截**

程序未做商业代码签名。点“更多信息 → 仍要运行”即可。企业环境可自行签名后分发。

## 问题反馈

标题栏右上角有“问题反馈”按钮，设置页“关于”里也有入口。填写问题描述后可以：

- 点“发送邮件”，通过内置 SMTP 直接发送给开发者；
- 点“复制反馈”，把主题、问题描述和运行信息一起复制到剪贴板；
- 可选附带版本、系统、设备名、连接数、时间和日志路径，不包含连接密钥。
- 支持直接 Ctrl+V 粘贴截图、拖入图片，或点“上传图片”添加最多 5 张附件。

## 系统要求与兼容性

- Windows 10 1809 或更高版本 / Windows 11，x64。
- 同一局域网，有线或无线网络均可。
- 鼠标、键盘可以是有线、2.4G 接收器或蓝牙；软件只关心它们连接在哪台“主控电脑”上，
  不依赖鼠标型号。
- 一台电脑只需一套键鼠；其他电脑可以没有物理键鼠。

> 当前构建环境为 Windows 11 x64，已完成加密握手、输入帧、剪贴板、200KB 文件传输、
> 剪贴板回环防护和输入注入的双端自动化测试。Win10 使用同一套 Win32 API，但建议在真实 Win10
> 目标机上做一次连接验证。

## 已知限制

- 跨机“拖拽文件”采用“边缘拖拽 + 取消本地拖拽 + 文件传输 + 保存到接收目录”的实现，
  不是操作系统原生的 OLE 跨机拖拽；对资源管理器最有效。
- 不支持音频、摄像头、打印机重定向。
- 目前仅提供 win-x64 构建。
- 对端多显示器时，以整块虚拟桌面的边缘作为进入/返回边界。
- 隐藏本机光标是实验选项，默认关闭；如开启后异常，重启程序即可恢复系统光标。

## 源码与构建

源码使用 .NET 8 + WinForms，项目结构：

```
MouseShare.sln
src/MouseShare.Core   网络、加密、设备发现、输入钩子/注入、剪贴板、文件传输
src/MouseShare.App    WinForms 界面、托盘、设置、布局编辑
MouseShare.Tests      双端联调测试
```

构建：

```powershell
dotnet build MouseShare.sln -c Release
dotnet run --project MouseShare.Tests/MouseShare.Tests.csproj -c Release
```

发布自包含 EXE 安装包：

```powershell
.\installer\build-installer.ps1 -Version 2.2.0
```

日志目录：`%APPDATA%\MouseShare\logs`

配置文件：`%APPDATA%\MouseShare\settings.json`

卸载：从 Windows“应用和功能”或开始菜单运行“卸载无界鼠标”。卸载不会删除
`%APPDATA%\MouseShare`；如需彻底清理，再手动删除该目录。
