Даже после удаления установщика процесс (apcsystray.exe) отображается как запущенный в диспетчере задач.А также (apcsystray.exe, drvutil.dll, pdcdll.dll, res.dll, UpsControl.dll, UpsDevice.dll) файлы по-прежнему отображаются в папке Program Files.
Я убиваю процесс "apcsystray.exe "using KillProcDLL :: KillProc" apcsystray.exe "
А также удаление файлов из папки Program Files с помощью следующих операторов:
Delete "$INSTDIR\drvutil.dll"
Delete "$INSTDIR\apcsystray.exe"
Delete "$INSTDIR\pdcdll.dll"
Delete "$INSTDIR\res.dll"
Delete "$INSTDIR\UpsControl.dll"
Delete "$INSTDIR\UpsDevice.dll"
Я использую различные способызавершите процесс, а также удалите папку INSTDIR и ее файлы различными способами, как показано ниже:
Пожалуйста, укажите, что мне здесь не хватает и что не так с моим кодом:
Ниже приведен фрагмент кода:
Function un.RMDirUP
!define RMDirUP '!insertmacro RMDirUPCall'
!macro RMDirUPCall _PATH
push '${_PATH}'
Call un.RMDirUP
!macroend
ClearErrors
Exch $0
;DetailPrint "ASDF - $0\.."
RMDir "$0\.."
IfErrors Skip
${RMDirUP} "$0\.."
Skip:
Pop $0
FunctionEnd
Function un.onInit
MessageBox MB_YESNO|MB_ICONEXCLAMATION "Are you sure you want to uninstall $(^Name)?" /SD IDYES IDYES NoAbort
Abort
NoAbort:
FunctionEnd
Section "Uninstall"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\EMR\MILLINNIUM"
DeleteRegKey HKLM "SOFTWARE\EMR\MILLINNIUM"
DeleteRegKey HKLM "SOFTWARE\EMR"
DeleteRegKey HKCU "SOFTWARE\EMR"
DeleteRegKey HKU ".DEFAULT\SOFTWARE\EMR"
FindProcDLL::FindProc "apcsystray.exe"
${if} $R0 == 1
KillProcDLL::KillProc "apcsystray.exe"
${EndIf}
Delete "$INSTDIR\drvutil.dll"
Delete "$INSTDIR\apcsystray.exe"
Delete "$INSTDIR\pdcdll.dll"
Delete "$INSTDIR\res.dll"
Delete "$INSTDIR\UpsControl.dll"
Delete "$INSTDIR\UpsDevice.dll"
Delete $INSTDIR\uninstall.exe
RMDir "$INSTDIR\APC\PowerChute Personal Edition"
RMDir "$INSTDIR\APC"
RMDir "$INSTDIR"
RMDir /r "$INSTDIR"
${RMDirUP} "$INSTDIR"
RMDir /r /REBOOTOK $INSTDIR
SectionEnd