Skip to content

ipmg v1.4.1

Choose a tag to compare

@DX-Cloud DX-Cloud released this 17 Oct 13:41
· 4 commits to main since this release

ipmg v1.4.1

v1.4.0 的补丁版本:修复若干"文档承诺了但功能没接线"的问题、单实例与提权的竞态缺陷,并把 README 重写为规范项目文档。

缺陷修复

  • 提权与单实例竞态:自动提权会拉起新进程接管,而父进程在退出前仍持有单实例互斥体,新进程可能抢在这个窗口内启动、误判"已在运行"而直接退出(表现为点击后程序没启动)。现在提权前先让出单实例,提权失败再重新取回
  • 单实例判定更稳健:改为"创建后立即尝试取得所有权"(WaitForSingleObject)。此前只要系统里存在同名互斥体对象(哪怕没有任何进程持有),程序就会永久认为"已有实例在运行"而拒绝启动
  • 重复启动唤出既有窗口真正接线:v1.4.0 只发送了通知事件却没有代码等待它,第二个实例提示"已请求既有实例显示窗口"却无人响应。现在既有实例会显示并前置窗口(常驻实例恢复被隐藏的控制台)并唤醒重绘
  • 操作闸门接入前台界面:配置、恢复、撤销、历史恢复现在都持闸门,与后台热键应用互斥。此前闸门只有热键路径使用,手动配置期间按预设热键会出现两边同时写同一块网卡
  • 手动流程备份失败默认中止:此前只提示"备份失败(继续执行)"就照常写网卡;现在默认中止(没有回滚点就不动网卡),确认知情后才继续;网卡没有 IPv4(未连接/APIPA,撤销无法还原)时给出提示
  • 空备份提示判断取错栈元素:备份栈 index 0 才是刚写入的那条,此前取最旧一条,会双向误报/漏报
  • 设置里的自定义更新检测地址(镜像站)真正生效:此前该设置项无人读取,手动检查与启动检测都只用内置源
  • 删除 utils/backup.py 中四个无调用者且绕过操作闸门的直接写网卡函数,恢复入口统一为 core.operations

新增

  • 命令行 -h/--help 帮助、-V/--version 版本输出;未知选项报错并返回退出码 2(此前被静默忽略——例如 --help 会被当成没写而直接启动界面)
  • --autostart-min 有实际语义:等价于 --resident,但不打印常驻启动信息
  • 热键注册失败现在会写入日志

文档

  • README 按成熟项目规范重写:徽章、功能分组表、界面预览、环境要求、安装、使用指南、命令行参数、配置文件、项目结构、架构、开发、FAQ、已知限制、技术栈、贡献
  • 完整版本历史拆分到新的 CHANGELOG.md(补齐 v1.0–v1.2 记录)
  • 修正文档中与实现不符的描述(界面预览的提示文本、日志不做轮转、设备/设置编辑不写操作日志、配置文件不会被自动搬移等)

使用

  • ipmg.exe:主程序(双击运行,自动 UAC 提权)
  • ipmg-config-editor.exe:配置可视化编辑器(GUI,免管理员)
  • 帮助与版本:ipmg --help、ipmg --version;环境自检:ipmg --selfcheck

升级提示

  • 从 v1.4.0 升级:配置格式未变,直接替换 exe 即可
  • 已开启开机自启的用户:计划任务记录的是 exe 路径,原地替换 exe 后无需重建任务

校验

ipmg.exe                C90A0CB6D34A39D01DC1E6F24B92CC434434105CE782385EBCA06B05D5FC8D29
ipmg-config-editor.exe  B1A300F220CA6468F96D22F73D63CBB0385B6089BCA8EB7624BC3216628783A9