Skip to content

luoqi2112/EasyKVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyKVM

零成本的纯软硬件协同 KVM 切换器。

EasyKVM 面向“单显示器 + 双电脑”的桌面场景。它把显示器的 DDC/CI 输入源切换、Input Leap 键鼠共享、局域网自动发现和全局热键整合到同一个 Windows 桌面应用中,让你不买硬件 KVM 也能实现接近硬件切换器的使用体验。

解决什么痛点

很多双机用户都会遇到同一类问题:

  • 显示器画面切过去了,但键鼠控制还留在另一台电脑
  • 使用 Input Leap 之类的软件共享时,首次配置复杂,网络角色不稳定
  • 切换动作依赖多个手工步骤,效率低,而且容易出错
  • 不想再额外购买硬件 KVM,只想利用现有显示器和局域网

EasyKVM 的目标就是把这些步骤压缩成一个按钮或一个全局热键。

核心特性

  • DDC/CI 热切显示器输入源,直接调用 Dxva2.dll / User32.dll
  • Input Leap 黑盒进程管理,支持静默拉起、配置生成和退出清理
  • UDP 局域网自动发现,双机可自动收敛主从角色
  • 全局热键切换,避免来回点窗口
  • WPF 深色现代化界面,适合常驻桌面使用
  • 管理员权限运行与单文件发布配置,便于面向普通用户分发

工作原理

EasyKVM 在运行时会同时做三件事:

  1. 控制显示器切换到指定输入源
  2. 管理 Input Leap 的主端 / 从端进程
  3. 通过 UDP 广播感知局域网另一台电脑,并维持主从状态机

当你点击界面按钮或按下全局热键时,程序会并发执行“切屏”和“切换键鼠主控权”。

环境要求

  • Windows 10 / 11
  • .NET 8 Desktop Runtime
  • 支持 DDC/CI 的显示器
  • 两台电脑在同一个局域网内
  • 显示器已连接两台电脑的不同视频输入口

快速开始 (Quick Start)

1. 先把线接好

你需要准备:

  • 一台支持 DDC/CI 的显示器
  • 两台 Windows 电脑,例如 PC-APC-B
  • 两根视频线,例如一根 HDMI、一根 DP

连接方式很简单:

  • PC-A 接到显示器的一个输入口,例如 HDMI 1
  • PC-B 接到显示器的另一个输入口,例如 DisplayPort 1
  • 保证两台电脑在同一个路由器或同一个交换网络下

2. 把程序放到能一起运行的位置

发布包中最关键的是两部分:

  • EasyKVM.Wpf.exe
  • 根目录下的 bin\InputLeap\ 黑盒依赖目录

两者必须同时存在,不能只复制 EXE。

3. 以管理员身份运行

双击运行 EasyKVM.Wpf.exe。如果系统弹出权限确认,请允许。

程序启动后会自动:

  • 枚举显示器
  • 启动局域网发现
  • 根据网络状态同步 Input Leap 主从角色

4. 第一次使用怎么操作

界面里最重要的几个位置:

  • “本机状态”:看本机名称、IP 和当前网络角色
  • “另一台电脑连接的显示器接口”:告诉 EasyKVM 对端电脑接在哪个输入口
  • “我的键鼠插在这台电脑上”:把当前机器宣告为主控端
  • “切换到另一台电脑”:把画面和键鼠控制一起交给另一台机器

建议第一次这样试:

  1. 在两台电脑上都运行 EasyKVM
  2. 在每台电脑上把“另一台电脑连接的显示器接口”选对
  3. 在你当前真正插着键鼠的那台电脑上,点击【我的键鼠插在这台电脑上】
  4. 确认界面状态正常后,再点击“切换到另一台电脑”
  5. 如果一切正常,再开始使用全局热键切换

5. 热键怎么改

界面下方可以直接选择:

  • 组合键修饰符,例如 Ctrl + Alt
  • 主键,例如 Q

然后点击“应用快捷键”即可立即重新注册。

项目结构

EasyKVM
├─ bin/
│  └─ InputLeap/            # 外部黑盒依赖,必须保留
├─ src/
│  ├─ EasyKVM.Core/         # DDC/CI、Input Leap、UDP、Hotkey 核心服务
│  ├─ EasyKVM.Phase1.Console/
│  ├─ EasyKVM.Phase2.Console/
│  ├─ EasyKVM.Phase3.Console/
│  └─ EasyKVM.Wpf/          # 最终 UI 项目
└─ build_release.ps1        # 一键打包脚本

构建

本地构建:

dotnet build .\EasyKVM.sln

打包发布:

.\build_release.ps1

开源协议

本项目使用 GPL-3.0 协议发布。根目录下的 LICENSE 文件为完整协议文本。

同时请注意:

  • 本项目依赖 Input Leap 黑盒二进制
  • 本仓库不会修改其源代码或二进制内容
  • 请在你自己的分发流程中,额外核对 Input Leap 自身的许可证与分发要求

免责声明

EasyKVM 会直接调用显示器的 DDC/CI 能力。不同品牌、不同型号显示器对输入源编码和 DDC/CI 支持程度不同,实际兼容性请以你的硬件环境为准。

如果你遇到“能读不能切”或“某个输入口编码不一致”的情况,优先排查:

  • 显示器 OSD 中是否开启了 DDC/CI
  • 当前视频线和接口是否与设置一致
  • 显示器厂商是否使用了非标准输入源映射

About

零成本的纯软硬件协同 KVM 切换器(DDC/CI + Input Leap)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors