零成本的纯软硬件协同 KVM 切换器。
EasyKVM 面向“单显示器 + 双电脑”的桌面场景。它把显示器的 DDC/CI 输入源切换、Input Leap 键鼠共享、局域网自动发现和全局热键整合到同一个 Windows 桌面应用中,让你不买硬件 KVM 也能实现接近硬件切换器的使用体验。
很多双机用户都会遇到同一类问题:
- 显示器画面切过去了,但键鼠控制还留在另一台电脑
- 使用 Input Leap 之类的软件共享时,首次配置复杂,网络角色不稳定
- 切换动作依赖多个手工步骤,效率低,而且容易出错
- 不想再额外购买硬件 KVM,只想利用现有显示器和局域网
EasyKVM 的目标就是把这些步骤压缩成一个按钮或一个全局热键。
- DDC/CI 热切显示器输入源,直接调用
Dxva2.dll/User32.dll - Input Leap 黑盒进程管理,支持静默拉起、配置生成和退出清理
- UDP 局域网自动发现,双机可自动收敛主从角色
- 全局热键切换,避免来回点窗口
- WPF 深色现代化界面,适合常驻桌面使用
- 管理员权限运行与单文件发布配置,便于面向普通用户分发
EasyKVM 在运行时会同时做三件事:
- 控制显示器切换到指定输入源
- 管理 Input Leap 的主端 / 从端进程
- 通过 UDP 广播感知局域网另一台电脑,并维持主从状态机
当你点击界面按钮或按下全局热键时,程序会并发执行“切屏”和“切换键鼠主控权”。
- Windows 10 / 11
- .NET 8 Desktop Runtime
- 支持 DDC/CI 的显示器
- 两台电脑在同一个局域网内
- 显示器已连接两台电脑的不同视频输入口
你需要准备:
- 一台支持 DDC/CI 的显示器
- 两台 Windows 电脑,例如
PC-A和PC-B - 两根视频线,例如一根 HDMI、一根 DP
连接方式很简单:
- 把
PC-A接到显示器的一个输入口,例如HDMI 1 - 把
PC-B接到显示器的另一个输入口,例如DisplayPort 1 - 保证两台电脑在同一个路由器或同一个交换网络下
发布包中最关键的是两部分:
EasyKVM.Wpf.exe- 根目录下的
bin\InputLeap\黑盒依赖目录
两者必须同时存在,不能只复制 EXE。
双击运行 EasyKVM.Wpf.exe。如果系统弹出权限确认,请允许。
程序启动后会自动:
- 枚举显示器
- 启动局域网发现
- 根据网络状态同步 Input Leap 主从角色
界面里最重要的几个位置:
- “本机状态”:看本机名称、IP 和当前网络角色
- “另一台电脑连接的显示器接口”:告诉 EasyKVM 对端电脑接在哪个输入口
- “我的键鼠插在这台电脑上”:把当前机器宣告为主控端
- “切换到另一台电脑”:把画面和键鼠控制一起交给另一台机器
建议第一次这样试:
- 在两台电脑上都运行 EasyKVM
- 在每台电脑上把“另一台电脑连接的显示器接口”选对
- 在你当前真正插着键鼠的那台电脑上,点击【我的键鼠插在这台电脑上】
- 确认界面状态正常后,再点击“切换到另一台电脑”
- 如果一切正常,再开始使用全局热键切换
界面下方可以直接选择:
- 组合键修饰符,例如
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
- 当前视频线和接口是否与设置一致
- 显示器厂商是否使用了非标准输入源映射