【问题标题】:NSIS uninstaller test opened fileNSIS 卸载程序测试打开的文件
【发布时间】:2013-07-02 12:39:32
【问题描述】:

对于我的卸载程序,如果$INSTDIR 中的文件被打开,我想递归测试,如果文件被打开,我想显示一个对话框并关闭卸载程序,否则我执行卸载代码。

【问题讨论】:

  • 对于删除时打开的文件,Delete /REBOOTOK 有帮助吗? (删除推迟到下次重新启动)。
  • 您的意思是被另一个应用程序打开/锁定吗?
  • 如果打开文件,我宁愿禁止卸载,因为PC无法重新启动。
  • 是的,我的意思是,如果文件已经打开,就不能删除了。

标签: file nsis uninstallation


【解决方案1】:

不要认为有直接的方法,但您可以执行以下操作:

  • 递归列出 $INSTDIR 中的所有文件和文件夹(方法:使用 FindFirst、FindNext,如 here 所述)
  • 测试每个文件是否已打开(使用文件命令)

【讨论】:

    【解决方案2】:

    问题在于打开后不可删除的可执行文件。 所以我想知道如果进程是否启动,阅读起来会不会更简单?

    【讨论】:

      【解决方案3】:

      我已经通过使用 FindProcDLL 插件读取进程是否正在运行来进行管理: http://nsis.sourceforge.net/Check_whether_your_application_is_running

      【讨论】:

        猜你喜欢
        • 2012-01-26
        • 2014-09-13
        • 1970-01-01
        • 2013-02-20
        • 2012-03-19
        • 2012-09-07
        • 2012-02-12
        • 2011-02-18
        • 2017-11-15
        相关资源
        最近更新 更多