Skip to content

Repository files navigation

MonitorTether

将鼠标光标锁定在主显示器范围内的 Windows 系统托盘工具,同时提供 DDC/CI 显示器控制功能。

功能

  • 鼠标锁定 — 一键将光标限制在主屏幕区域,防止跨屏误操作
  • 全局快捷键 — 默认 Ctrl+Alt+L 切换锁定/解锁,可在设置中自定义
  • DDC/CI 显示器控制 — 通过右键菜单或设置对话框:
    • 关闭/开启显示器电源
    • 切换视频输入源(HDMI、DisplayPort 等)
    • 调节亮度和对比度
  • 右键菜单可配置 — 可单独开关电源控制和输入源切换菜单项
  • 自定义显示器名称 — 编辑显示器名称并持久化到注册表
  • 锁定状态持久化 — 重启后自动恢复上次的锁定状态
  • 屏幕中央提示 — 切换时显示锁定/解锁状态浮窗
  • 单实例运行 — 防止重复启动

编译

依赖 MinGW UCRT64 工具链:

g++ -o MonitorTether.exe 鼠标锁定.cpp resource.res -ldxva2 -lcomctl32 -mwindows -static

资源文件编译(修改图标后需要重新编译):

windres resource.rc -O coff -o resource.res

使用

  1. 运行 MonitorTether.exe,系统托盘出现图标
  2. 左键点击托盘图标 — 切换鼠标锁定
  3. 右键点击托盘图标 — 打开菜单
    • 解除锁定 / 开启锁定
    • 显示器控制(每个显示器独立子菜单)
    • 设置
    • 退出
  4. 快捷键 — 默认 Ctrl+Alt+L,可在设置中修改

技术细节

功能 实现方式
鼠标锁定 ClipCursor() + 看门狗定时器
显示器枚举 EnumDisplayMonitors + GetPhysicalMonitorsFromHMONITOR
DDC/CI 控制 动态加载 dxva2.dll,VCP 指令 0xD6/0x60/0x10/0x12
系统托盘 Shell_NotifyIconW + 自定义窗口消息
设置持久化 Windows 注册表 HKCU\Software\MouseLock
快捷键 RegisterHotKey / UnregisterHotKey
单实例 命名互斥体 MouseLock_SingleInstance

项目结构

├── 鼠标锁定.cpp          # 主程序源码
├── resource.h            # 资源 ID 定义
├── resource.rc           # 资源脚本(图标嵌入)
├── app-padlock-mouse.ico # 应用图标(绿底白锁)
├── tray-padlock-on.ico   # 托盘图标-锁定状态(红色)
├── tray-padlock-off.ico  # 托盘图标-解锁状态(绿色)
├── convert_svg_to_ico.py # Pillow 图标生成脚本
└── 参考文件/
    └── 鼠标锁定.pyw       # Python 参考实现

系统要求

  • Windows 10 或更高版本
  • 支持 DDC/CI 的显示器(非必需,仅控制功能需要)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages