Skip to content

litertiger/java-kvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

CH340Java 远程控制项目

项目简介

这是一个基于 Java 的远程控制应用程序,通过 USB 摄像头实现视频监控,并通过 CH9329 串口芯片实现远程鼠标和键盘控制功能。

功能特性

  • USB 摄像头视频显示:支持实时视频流显示,可选择不同摄像头
  • 远程鼠标控制:支持鼠标移动、点击、拖拽等操作
  • 远程键盘控制:支持键盘按键和特殊键(F1-F12、方向键等)的远程控制
  • 全屏模式:支持全屏显示,提供更好的远程控制体验
  • 事件日志:实时记录鼠标和键盘操作事件
  • 串口通信:通过 CH9329 芯片实现 USB HID 设备模拟

技术栈

  • Java 8+
  • Swing:GUI 界面
  • Webcam Capture:摄像头视频捕获
  • JSerialComm:串口通信
  • Maven:项目构建

系统要求

  • JDK 1.8 或更高版本
  • Windows 操作系统
  • USB 摄像头
  • CH9329 串口设备

安装和运行

1. 克隆项目

git clone [项目地址]
cd CH340Java

2. 编译打包

mvn clean package

3. 运行程序

java -jar target/CH340Java-1.0-SNAPSHOT-jar-with-dependencies.jar

使用说明

启动程序

  1. 运行程序后,会显示主窗口
  2. 在顶部控制面板选择摄像头
  3. 点击"显示视频"按钮开始视频流

远程控制功能

  • 鼠标控制:在视频区域移动鼠标,程序会自动将坐标转换为目标分辨率并发送控制命令
  • 键盘控制:程序会监听键盘事件并通过串口发送到远程设备
  • 全屏模式:点击"全屏显示"按钮进入全屏模式,鼠标移动到顶部可显示控制栏

日志查看

  • 右侧日志面板会实时显示所有操作事件
  • 可以点击"隐藏日志"按钮隐藏日志面板

硬件连接

CH9329 设备连接

  1. 将 CH9329 设备通过 USB 连接到电脑
  2. 设备会自动识别为串口设备
  3. 程序会自动选择第一个可用的串口

摄像头连接

  1. 将 USB 摄像头连接到电脑
  2. 程序启动后会自动检测可用摄像头
  3. 在摄像头选择下拉框中选择要使用的摄像头

项目结构

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
  • 校验位:无

故障排除

常见问题

  1. 摄像头无法启动

    • 检查摄像头是否正确连接
    • 确认摄像头驱动已安装
    • 检查是否有其他程序占用摄像头
  2. 串口连接失败

    • 检查 CH9329 设备是否正确连接
    • 确认设备驱动已安装
    • 检查串口是否被其他程序占用
  3. 键盘事件无法捕获

    • 确保窗口处于焦点状态
    • 检查是否有输入法干扰
    • 在全屏模式下会自动切换到英文输入法

日志分析

程序会在日志面板显示详细的操作信息,包括:

  • 鼠标移动坐标
  • 键盘按键事件
  • 错误信息和异常

开发说明

添加新的键盘映射

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
  • 发送邮件至:[您的邮箱]

注意:使用本程序进行远程控制时,请确保遵守相关法律法规,不得用于非法用途。

About

基于ch9329和usb摄像头的廉价kvm解决方案

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages