这是一个局域网内的时间控制系统,包含客户端和控制端两个部分:
- 客户端(ControlTimeService):安装在需要控制的电脑上,执行时间控制和应用程序监控
- 控制端(ControlCenter):安装在管理员电脑上,用于远程管理所有客户端
- 默认密码(MainWindow.xaml.cs):123456789
- 支持周一到周日分别设置不同的时间规则
- 可配置每天的使用时长和休息时长
- 午间限制(默认11:00-14:00)
- 晚间限制(默认18:00-20:30)
- 夜间自动关机锁定(默认20:30后)
- 自动检测并阻止微信小程序游戏
- 自动检测并阻止常见游戏程序
- 检测到违规应用时自动锁屏
- 远程查看客户端状态
- 远程锁定/解锁客户端
- 远程编辑客户端时间配置
- 远程关闭客户端电脑
- 编译 ControlTimeService 项目
- 在需要控制的电脑上运行程序
- 如需连接控制端,创建
control_config.json文件:{ "server_url": "http://控制端IP地址:8080" } - 程序会自动添加到开机启动项
- 编译 ControlCenter 项目
- 在管理员电脑上运行程序
- 服务器会自动启动并监听 8080 端口
- 确保防火墙允许 8080 端口的入站连接
-
主界面:
- 显示当前状态和剩余时间
- "暂停"按钮:立即进入锁屏状态
- "时间配置"按钮:打开本地配置界面
-
配置时间规则:
- 点击"时间配置"按钮
- 为每天设置不同的规则
- 可配置使用时段、休息时长等
-
锁屏状态:
- 输入管理员密码解锁
- 可选择临时使用时长
-
查看客户端列表:
- 自动显示所有已连接的客户端
- 显示客户端名称、IP、状态、剩余时间等信息
-
远程控制:
- 右键点击客户端,选择操作:
- 远程锁定:立即锁定客户端
- 远程解锁:发送解锁命令
- 编辑配置:修改客户端的时间规则
- 远程关机:关闭客户端电脑
- 右键点击客户端,选择操作:
-
编辑配置:
- 选择客户端后点击"编辑配置"
- 为每天设置时间规则
- 点击"保存并应用"发送到客户端
- HTTP RESTful API
- 默认端口:8080
- JSON 数据格式
POST /api/clients/register- 客户端注册POST /api/clients/heartbeat- 心跳保持GET /api/clients- 获取客户端列表GET /api/clients/{id}/commands- 获取待执行命令POST /api/clients/{id}/status- 更新客户端状态POST /api/clients/{id}/lock- 远程锁定POST /api/clients/{id}/unlock- 远程解锁POST /api/clients/{id}/config- 更新配置
- 管理员密码默认为:lnbxSoftLizhenNiping
- 建议在 production 环境中修改密码
- HTTP 通信未加密,仅在可信局域网内使用
- 检查 control_config.json 文件中的 IP 地址是否正确
- 确认控制端正在运行
- 检查防火墙是否阻止了 8080 端口
- 确认客户端和控制端在同一局域网内
- 确认客户端已启动并配置了正确的服务器地址
- 检查网络连接
- 查看控制端的调试输出
- 微信小游戏通过窗口标题关键词识别
- 游戏通过进程名和窗口标题识别
- 可在 AppMonitor.cs 中调整检测规则
- .NET 8.0
- WPF (Windows Presentation Foundation)
- System.Text.Json
- Windows API (用于应用监控)
ControlTimeService/
├── ControlTimeService/ # 客户端项目
│ ├── AppMonitor.cs # 应用程序监控器
│ ├── TimeConfig.cs # 时间配置管理
│ ├── HttpServer.cs # HTTP 服务器(共享)
│ ├── HttpClient.cs # HTTP 客户端
│ ├── ConfigWindow.xaml # 配置界面
│ └── ...
├── ControlCenter/ # 控制端项目
│ ├── MainWindow.xaml # 主界面
│ ├── ConfigEditorWindow.xaml # 配置编辑器
│ └── ...
└── ControlTimeService.slnx # 解决方案文件
本项目仅供学习和内部使用。