这是一个基于 Java 的远程控制应用程序,通过 USB 摄像头实现视频监控,并通过 CH9329 串口芯片实现远程鼠标和键盘控制功能。
- USB 摄像头视频显示:支持实时视频流显示,可选择不同摄像头
- 远程鼠标控制:支持鼠标移动、点击、拖拽等操作
- 远程键盘控制:支持键盘按键和特殊键(F1-F12、方向键等)的远程控制
- 全屏模式:支持全屏显示,提供更好的远程控制体验
- 事件日志:实时记录鼠标和键盘操作事件
- 串口通信:通过 CH9329 芯片实现 USB HID 设备模拟
- Java 8+
- Swing:GUI 界面
- Webcam Capture:摄像头视频捕获
- JSerialComm:串口通信
- Maven:项目构建
- JDK 1.8 或更高版本
- Windows 操作系统
- USB 摄像头
- CH9329 串口设备
git clone [项目地址]
cd CH340Java
mvn clean package
java -jar target/CH340Java-1.0-SNAPSHOT-jar-with-dependencies.jar
- 运行程序后,会显示主窗口
- 在顶部控制面板选择摄像头
- 点击"显示视频"按钮开始视频流
- 鼠标控制:在视频区域移动鼠标,程序会自动将坐标转换为目标分辨率并发送控制命令
- 键盘控制:程序会监听键盘事件并通过串口发送到远程设备
- 全屏模式:点击"全屏显示"按钮进入全屏模式,鼠标移动到顶部可显示控制栏
- 右侧日志面板会实时显示所有操作事件
- 可以点击"隐藏日志"按钮隐藏日志面板
- 将 CH9329 设备通过 USB 连接到电脑
- 设备会自动识别为串口设备
- 程序会自动选择第一个可用的串口
- 将 USB 摄像头连接到电脑
- 程序启动后会自动检测可用摄像头
- 在摄像头选择下拉框中选择要使用的摄像头
src/main/java/com/ch340/
├── RemoteControlWindow.java # 主窗口类
├── CH9329Serial.java # 串口通信类
├── KeyboardCommander.java # 键盘控制类
└── MouseCommander.java # 鼠标控制类
程序默认将鼠标坐标转换为 1920x1080 分辨率:
private static final int TARGET_WIDTH = 1920;
private static final int TARGET_HEIGHT = 1080;
默认串口配置:
- 波特率:9600
- 数据位:8
- 停止位:1
- 校验位:无
-
摄像头无法启动
- 检查摄像头是否正确连接
- 确认摄像头驱动已安装
- 检查是否有其他程序占用摄像头
-
串口连接失败
- 检查 CH9329 设备是否正确连接
- 确认设备驱动已安装
- 检查串口是否被其他程序占用
-
键盘事件无法捕获
- 确保窗口处于焦点状态
- 检查是否有输入法干扰
- 在全屏模式下会自动切换到英文输入法
程序会在日志面板显示详细的操作信息,包括:
- 鼠标移动坐标
- 键盘按键事件
- 错误信息和异常
在 CH9329Serial.java
中的 KEYCODE_MAP
添加新的键码映射:
KEYCODE_MAP.put("新按键名", (byte)键码值);
在 RemoteControlWindow.java
中修改:
private static final int TARGET_WIDTH = 新宽度;
private static final int TARGET_HEIGHT = 新高度;
本项目采用 MIT 许可证。
欢迎提交 Issue 和 Pull Request 来改进这个项目。
如有问题或建议,请通过以下方式联系:
- 提交 GitHub Issue
- 发送邮件至:[您的邮箱]
注意:使用本程序进行远程控制时,请确保遵守相关法律法规,不得用于非法用途。