Open
建议明确交互审阅的取消语义,并避免无条件退出 PowerPoint #156
csdn888231Add on  18 days ago
csdn888231
csdn888231
18 days ago Create

查看 main 分支 scripts/ppt_review.py 后,有一条关于取消审阅及应用生命周期的改进建议(代码审阅发现,尚未在 Windows + PowerPoint 环境实机复现)。
代码依据:

  1. main() 使用 win32com.client.Dispatch("PowerPoint.Application") 获取应用对象,并打开新版文件。
  2. show() 中,askyesnocancel 返回 None 时进入 Cancel 分支,仅执行 pass。
  3. show() 返回后,main() 无条件执行 pres.Close(); ppt.Quit();没有区分完成审阅和用户取消,也没有区分是否由脚本创建了独立 PowerPoint 实例。
    建议:
  • 明确“取消”是退出并丢弃本轮审阅,还是保留窗口供用户继续检查,并在 README 说明。
  • 若设计为脚本独占一个 PowerPoint 实例,可考虑使用独立实例,并只清理脚本自身创建的资源;若复用了用户已有实例,避免无条件调用 Quit。
  • 让 show() 返回 completed/cancelled 等明确状态,再决定保存输出、关闭演示文稿以及退出应用。
    建议维护者验证:先打开一份已保存的无关 PPT,再用模式 B 打开两份含文本差异的测试文件,在第一条修订处点击取消;核对用户原有窗口是否保留、是否生成输出,并与说明文档保持一致。
    这条建议不主张已发生数据丢失,重点是明确取消行为和隔离自动化实例,减少对用户正在使用的 PowerPoint 会话的影响。
likedislike