HugoLock 是 Windows 平台下针对希沃(Seewo)教学软件的辅助工具,核心功能为向 SeewoServiceAssistant.exe 进程注入自定义 DLL,并通过共享内存标志与 DLL 协同工作,实现对“希沃管家”置顶窗口的显示/隐藏控制。工具支持两种运行模式:Direct 模式(后台无交互,持续启用拦截)和 Assist 模式(图形界面,用户手动控制拦截状态)。
程序强制要求管理员权限,具备单实例保护、UIAccess 提升、调试权限启用等特性。
- 单实例保护:确保同一时间只有一个程序实例运行。
- 自动权限提升:
- 要求以管理员身份运行,否则退出。
- 尝试启用
UIAccess以提高窗口操作权限(失败时仅降级功能)。
- 进程注入:
- 监控
SeewoServiceAssistant.exe进程,定时检查并注入同目录下的HugoHSSA.dll。
- 监控
- 共享标志控制:
- 创建名为
HugoLockFlag的共享内存标志位,供主程序与注入的 DLL 通信。 - 标志为
TRUE时 DLL 执行拦截(隐藏置顶窗口等),为FALSE时停止拦截。
- 创建名为
- 双运行模式(通过命令行
/mode参数指定):- Direct 模式(默认):设置共享标志为
TRUE并循环保持,后台持续运行,无用户界面。 - Assist 模式:设置共享标志为
FALSE,弹出图形对话框,用户可通过界面按钮开启/关闭拦截或执行一次性解锁。
- Direct 模式(默认):设置共享标志为
- 配置文件支持(仅 Assist 模式):
- 读取同目录下的
HugoLock.ini,其中[Config]节的UI项可指定界面风格:dialog:主对话框(功能完整)button:简化对话框(I仅显示关闭按钮)
- 读取同目录下的
- 权限:必须以管理员身份运行
- 文件依赖:
- 程序同目录下必须存在
HugoHSSA.dll(注入用) - (可选)
HugoLock.ini用于 Assist 模式的界面配置
- 程序同目录下必须存在
# Direct 模式(默认)
HugoLock.exe
# Assist 模式(带图形界面)
HugoLock.exe /mode assist若需自定义界面,在同目录自动创建的 HugoLock.ini中修改,内容示例:
[Config]
UI=dialog ; 或 button- 主对话框(
dialog)通常包含“开启拦截”、“关闭拦截”、“解锁一次”等按钮,根据窗口过程实现控制共享标志。 - 简化对话框(
button)可能仅提供退出程序功能(具体取决于窗口过程实现)。 - Direct 模式无界面,启动后即持续运行,需通过任务管理器结束进程。
- 启动准备:
- 检查管理员权限,启用
UIAccess和调试权限。 - 确保只有一个实例运行。
- 检查管理员权限,启用
- 共享标志初始化:
- 创建名为
HugoLockFlag的内存映射,初始值根据模式设置。
- 创建名为
- 注入监控线程:
- 后台线程每 500ms 检查
SeewoServiceAssistant.exe进程,若未注入则执行注入。
- 后台线程每 500ms 检查
- 行为分支:
- Direct 模式:主线程循环将共享标志设为
TRUE,保持拦截状态直到程序结束。 - Assist 模式:显示对话框,用户交互控制标志值,同时后台注入线程持续运行。
- Direct 模式:主线程循环将共享标志设为
- DLL 行为(独立实现):
- 被注入后读取共享标志,当标志为
TRUE时执行窗口隐藏/事件拦截等操作。
- 被注入后读取共享标志,当标志为
- 权限不足:若非管理员运行,程序会直接退出,不会执行任何操作。
- DLL 缺失:若
HugoHSSA.dll不存在或无法注入,共享标志仍可工作,但实际窗口控制会失效。 - 退出方式:
- Direct 模式:需强制结束进程(任务管理器或关闭控制台窗口)。
- Assist 模式:正常关闭对话框即可退出程序。
- 兼容性:程序专为希沃教学软件设计,针对
SeewoServiceAssistant.exe和标题为“希沃管家”的置顶窗口生效,其他环境可能无效果。 - 安全提示:注入系统进程可能被安全软件拦截,建议提前添加信任。
本项目使用 GNU General Public License v3.0 开源协议。详情请参见项目根目录下的 LICENSE 文件。