找出阻止修改应用程序数据文件的过程

len*_*ant 0 inno-setup

有时,我的应用程序的某些文件被某些进程使用。例如,用户打开应用程序日志或类似的日志,而忘记关闭它。这在安装/升级/卸载时会导致一些错误。在这种情况下,我想找出正在使用文件的进程,并向用户显示一条消息,指出已使用文件。

是否可以在Inno Setup中找出原因,哪个过程阻止脚本修改文件?至少当我在“代码”部分中尝试执行此操作时。

Mar*_*ryl 5

Inno Setup可以自动检查安装的文件是否被某些进程锁定,并为用户提供自5.5.0起自动关闭(并稍后重新启动)应用程序的功能。

确保将CloseApplications伪指令设置为其默认值yes

虽然默认情况下,仅*.exe,*.dll,*.chm检查文件。如果还要检查其他或所有其他文件,请修改CloseApplicationsFilter指令

[Setup]
; default
CloseApplications=yes
; check all files
CloseApplicationsFilter=*.*
Run Code Online (Sandbox Code Playgroud)

如果要通过代码安装某些文件,请使用RegisterExtraCloseApplicationsResources事件函数

[Setup]
; default
CloseApplications=yes
; check all files
CloseApplicationsFilter=*.*
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明