Repository navigation
Releases
Releases · yearzen1/ComputerLock
v3.5.0
Features
- 时段结束自动解锁:到达锁定时段结束点(如
8:00 → 22:00到 22:00)自动解除锁屏,无需输入密码;「锁定时段内」与「锁定时段外」两种模式均支持,含跨天时段(22:00 → 8:00) - 自动解锁使用锁屏开始那一刻的时段快照,之后修改配置不会影响当前这次锁屏
- 自动解锁是静默的:不弹设置窗口、不调用解锁回调,监控继续运行;密码解锁弹窗打开时不会触发自动解锁
性能
- 前台进程识别改用
OpenProcess+QueryFullProcessImageNameW:单次 约 20ms → 0.085ms(约 235 倍),受保护/反作弊进程取不到时自动回退原快照实现 - 白名单轮询间隔 1s → 2s(时段判定仍为 1s,单次约 1.33µs,约 0.11s CPU/天)
lock_debug.log改为只写状态变化与关键事件(另有 60 秒心跳),实测 500 次日志调用只落 5 行;超过 5MB 时轮转为lock_debug.log.old
其它
- 时段判定逻辑抽出为
src/schedule.py,check_lock_time支持注入now以便测试 - README 更新:移除已删除的
lock_duration倒计时说明,补充自动解锁与日志策略 - 测试数量 33 → 75
Full Changelog: v3.4.0...v3.5.0
v3.4.0
Features
- 系统托盘:点 □ 最小化或「开始监控」后窗口收起到右下角通知区(不占任务栏);单击/双击托盘图标恢复窗口,右键菜单支持「显示主窗口 / 退出」,退出时干净停止监控线程与托盘
- 应用图标统一:标题栏、任务栏、密码弹窗与 exe 图标改为与托盘一致的蓝色锁形图标(构建时自动从绘制代码生成多尺寸 .ico)
- 解锁后窗口从托盘隐藏状态也能正确恢复
Full Changelog: v3.3.0...v3.4.0
v3.3.0
Features
- 移除锁屏自动解锁:删除倒计时自动解锁与「锁定持续时间(分钟)」设置项,现在只能通过密码解锁(每日任务仍需全部完成)
- 锁屏界面改版:现代深色卡片布局 —— 内容收进居中卡片,时钟放大居顶,每日任务 / Unlock 按钮 / 白名单分区分组展示
- 统一深色配色:背景 #1e1e2e、卡片 #2a2d3e、主色 #4a9eff,解锁密码弹窗同步改版
Full Changelog: v3.2.0...v3.3.0
v3.2.0
Features
- 设置界面重构为选项卡布局:「锁定设置 / 白名单 / 每日任务」三页,表单标签在上、控件在下,排版对齐
- 白名单与每日任务页:列表居中扩展,输入框与按钮底部居中排列;水平/垂直滚动条位置修正
- 窗口尺寸自动适配屏幕,小屏不再溢出
Fixed
- 锁屏白名单按钮名称截断错误(rstrip 按字符集剥离导致 edge.exe 显示为 edg)
Full Changelog: v3.1.0...v3.2.0
v3.1.0
Features
- 开机自启动:设置界面新增「开机自启动」复选框,可随时开关;默认开启,写入 HKCU Run 注册表键(任务管理器启动页可见/可禁用)
- 自启动路径动态取当前 exe 位置,不写死;外部修改(如任务管理器禁用)会被尊重
Fixed
- 启动时切换工作目录到程序目录,修复自启动(或非程序目录运行)时配置文件读写错位的问题
Refactor
- 源码移入 \src/\ 目录(平铺布局),新增 \pytest.ini\;入口变更为 \python src/ComputerLock.py\
- 删除过时的
elease_notes.md\(release notes 自此在 GitHub Releases 维护)
Misc
- 新增 pytest 测试套件(注册表操作/配置迁移,共 10 个用例)
Full Changelog: v3.0.2...v3.1.0
v3.0.2
v3.0.1
架构重构:JSON 文件即唯一数据源
- config.py 新增原子 API (get/toggle/add/remove daily_tasks & whitelist)
- ComputerLock.py 去掉全局变量 whitelist/daily_tasks,全部通过 config API 读写
- lock_screen.py 改用 config API,不再直接操作 JSON
- 移除冗余的 save_shared_to_disk()
- 解锁后 load_settings_from_config() 从磁盘重新加载
- 修复锁屏 daily task 勾选后被全局变量覆盖的 bug
v3.0.0
v2.2.0
What's new
- Daily Tasks: Lock screen shows checkable tasks; unlock requires all done + password
- Manage daily tasks in settings (add/remove/toggle), auto-resets every day
- Shared config: whitelist and daily tasks shared across lock/unlock modes (config_shared.json)
- Scrollable settings window now shows all content without scrolling
- Inline error on lock screen instead of hidden popup (password/task errors)
- Project skill build-to-final for auto-packaging workflow
v2.1.1
v2.1.1
Fixed
- Whitelist entries now preserve the original user input (supports both
chrome.exeand full paths likeD:\path\to\app.exe); matching still uses basename comparison
v2.1.0
Refactor
- Split monolith into modular files (config.py, lock_screen.py, process_util.py)
- Migrate old config.json to new config files
Features
- Two lock modes: lock during period / lock outside period
- Two configurable time periods per mode (overnight support)
- Process whitelist: auto-hide lock screen when whitelisted app is foreground
- Launch whitelisted apps directly from lock screen
- Keyboard block for Win/Alt/Tab/Esc/F4/Shift/Ctrl/Delete (optional)
- Multi-monitor fullscreen lock window
Misc
- Removed outdated screenshots (lock.png, setting.png)
- Updated README to reflect actual functionality