|
没改BCD。
如果是正常退出会执行以下操作。
部分源码如下:
;-----------主程序运行结束后的清理工作--------------
CleanUp:
# 停止服务。
nsExec::Exec 'sc.exe stop "volume_tracker"'
......
IfFileExists $EXEDIR\NoClean.ini 0 +2
Goto RegRestore
# 删除服务。
nsExec::Exec 'sc.exe delete "fltsrv"'
......
# 删除文件残留,/REBOOTOK该文件当前不可删除,则会在系统重启时删除该文件。
Delete /REBOOTOK "$SYSDIR\Acronis"
......
# 删除注册表残留
DeleteRegKey HKCU "Software\Acronis"
......
RegRestore:
;-----------Windows下强行运行后还原注册表--------------
ReadRegStr $9 HKLM SYSTEM\CurrentControlSet\Control\MiniNT "IsWin" ;从注册表读取一个字串值并输出到用户变量$9。
${If} $IsWin = 'Y'
DeleteRegKey HKLM "SYSTEM\CurrentControlSet\Control\MiniNT"
nsExec::Exec 'reg.exe import HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318} "${APPDIR}\4d36e967.reg"'
nsExec::Exec 'reg.exe import HKLM\SYSTEM\ControlSet001\Control\Class\{71a27cdd-812a-11d0-bec7-08002be2092f} "${APPDIR}\71a27cdd.reg"'
${EndIf}
# 删除文件夹。
RMDir /r /REBOOTOK "$APPDATA\Acronis" ;删除文件夹*:\Users\Administrator\AppData\Roaming\Acronis。
RMDir /r /REBOOTOK "$LocalAppData\Acronis" ;删除文件夹*:\ProgramData\Acronis。
RMDir /r /REBOOTOK "$TEMP\${APP}"
如果是意外退出。比如 Cyber Protect 关闭时会强行重启电脑。以上动作都没做。TEMP目录下文件夹也在,里面有2个注册表文件。可以在 WINPE 中使用 DISM++ 直接导入到系统即可。
能进入WIN系统中时当你再次运行时,如果点击“否”,也会执行一遍清理动作。
|
|