Repository navigation
Releases: daa0v0/MemOpt
Releases · daa0v0/MemOpt
Release list
MemOpt v1.1.3
v1.1.3
修复
- 开机自启动失效:单实例互斥锁原先在提权流程之前创建——开机自启动的实例以普通权限启动,先持有互斥锁,再通过
runas触发 UAC 重启一个提权新进程;新进程启动后再次检查互斥锁时,旧实例尚未退出仍持锁,于是新进程误判「MemOpt 已在运行」直接退出,随后旧实例也退出释放锁。交接瞬间两个实例都没存活,窗口/托盘不出现。现把互斥锁创建移到提权流程之后:旧实例在提权交接时从不持锁,新实例稳定成为唯一实例,交接竞态彻底消除。
安全
仅调整启动顺序,未触碰清理核心逻辑:清理互斥锁、150ms 步间延迟、区域掩码、Native API 调用顺序均保持不变。
MemOpt v1.1.2
v1.1.2
新增
- DPI 自适应缩放(解决笔记本小屏可读性):以 96 DPI(100%)为设计基准引入统一缩放层(
UIS()),窗口、字体、间距、卡片、按钮、状态条、设置窗口全部等比放大。 - UI 放大封顶 115%:作为轻量小工具,若对 125%/150% 屏线性等比(1.25/1.5 倍)窗口会占满屏幕;现封顶 115%,保证清晰可读又不臃肿。
性能优化
24 小时常驻后台,3 秒周期刷新开销降到最低:
- 托盘图标变化检测:百分比未变化时跳过图标重建与
Shell_NotifyIcon调用。 - 卡片与大百分比按需重绘:仅数值或文案变化才
SetWindowTextW/InvalidateRect。 - 状态条文本缓存对比。
- 去掉整窗周期性重绘。
- 周期开销:1 次
GlobalMemoryStatusEx+ 1 次GetPerformanceInfo+ 7 次字符串比较,无 GDI / 资源管理器 IPC / 重绘。
安全
性能优化与 DPI 缩放均未触碰清理核心逻辑:清理互斥锁、150ms 步间延迟、区域掩码、Native API 调用顺序全部保持不变。
MemOpt v1.1.1
[1.1.1] - 2026-09-04
修复
- Hero 白色区压住物理内存卡片顶部:白色背景区底部此前比第一张「物理内存」卡片顶部低 14px,视觉上白色多出一截越过卡片;现与卡片顶缘精确对齐。
- 主进度条与信息文字重叠:Hero 区「内存已使用 X.X GB」文字与自绘进度条 y 坐标重叠 10px,文字白色背景会从中间遮断进度条,看起来断断续续。
改进
- 去掉 Hero 区大进度条:顶部只保留大百分比 + 内存信息两行,垂直居中(上下各 22px 对称留白),画面更简洁。
- 主窗口加宽 480 → 500px:卡片、按钮比例更舒展;按钮行改为
270 + 20 + 170,左右缘与卡片精确对齐(原 480 宽下右缘收不齐)。 - 卡片内部垂直分布匀称:顶部 14 · 标签 20 · 间距 8 · 数值 26 · 间距 6 · 进度条 8 · 底部 8,不再上挤下空;卡片间距 12 → 14。
- 状态条 72 → 68:两行文字垂直居中,绿点对准第一行中心,底部不再空 8px。
维护
- 删除废弃进度条相关死代码:
draw_progress_bar、bar_color_kind函数与g_hBar、g_progress_pct全局量。 - 编译体积减小约 500 字节。
安全说明
仅外壳布局与绘制改动,未触碰清理核心逻辑:150ms 步间延迟、清理互斥锁、区域掩码、Native API 调用顺序均保持不变。
MemOpt v1.1.0
[1.1.0] - 2026-09-03
新增
- 日志轮转:
memopt.log超过 512KB 时自动归档为memopt.log.old,防止长时间运行日志无限膨胀。 - 单实例保护:启动时创建
Local\MemOpt_SingleInstance互斥锁,防止双开导致两个清理线程并发调用内核内存 API;已有实例时 GUI 弹提示、命令行静默退出。 - DPI 感知:Win10 1703+ 使用
Per-Monitor V2,回退到SystemAware,旧系统再回退SetProcessDPIAware,高分屏下自绘 UI 不再被系统位图拉伸变模糊。 - 启动横幅日志:每次启动记录内存占用、阈值、间隔、强力模式、后台自动、管理员权限等关键状态,方便日志定位。
改进
- NTSTATUS 错误码中文说明:日志中常见错误码(如
0xC0000061、0xC0000003、0xC0000004)现在附带中文解释,一眼区分“权限不足”还是“系统不支持”。 - 设置窗口数字输入框视觉优化:
- 去掉 EDIT 控件默认 3D/实线边框,与 spinner 白底融为一体;
- 数字改用常规字重字体,不再又粗又显眼;
- 输入框高度缩小并垂直居中,增加左右呼吸空间;
%/分钟标签右移,不再紧贴输入框;- 按压 spinner 时外框高亮蓝色反馈,箭头改用小号字体。
维护
- 删除
SettingsProc中永不触达的死代码分支(自定义控件已走子类化,父窗口不会收到对应WM_LBUTTONDOWN)。 - 删除废弃函数
sync_settings_to_ui_unused。 - 更新
README.md功能列表与技术细节说明。
安全说明
本次所有改动均为外围优化,未触碰清理核心逻辑:
CLEAN_STEP_DELAY_MS150ms 步间延迟保持不变;- 清理互斥锁
CLEAN_LOCK_TRY / CLEAN_UNLOCK保持不变; - 区域掩码、安全闸门、Native API 调用顺序保持不变。