- Сообщения
- 7,790
- Репутация
- 2,322
Этот код опасный. Просто так его лучше не запускать.
Делаю деинсталлятор программы. Так как в папке программы находится зарегистрированная 678.dll, то деинсталлирую в 2 этапа. Первый - удаление ярлыков, ключей реестра и прописывание в автозагрузку второго этапа. Второй, после перезагрузки, - удаление самой папки программы с содержимым. Проблема во втором этапе. Вот он:
Все файлы удаляются, но сама папка @ScriptDir (она в Program Files) не удаляется, а остается пустой.
При этом, если просто создать папку и запустить из нее скрипт, то папка удаляется из любого места.
Помогите, пожалуйста, решить эту проблему и удалить эту папку.
Спасибо.
PS
Я был не совсем прав. Папка удаляется из любого места, если запустить не скомпилированный скрипт, а, если скрипт скомпилирован в .exe, то папка не удаляется, а остается пустой.
Делаю деинсталлятор программы. Так как в папке программы находится зарегистрированная 678.dll, то деинсталлирую в 2 этапа. Первый - удаление ярлыков, ключей реестра и прописывание в автозагрузку второго этапа. Второй, после перезагрузки, - удаление самой папки программы с содержимым. Проблема во втором этапе. Вот он:
Код:
#include <File.au3>
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Finish.exe")
FileDelete(@ScriptDir & "\123.bat")
FileDelete(@ScriptDir & "\234.bat")
FileDelete(@ScriptDir & "\345.htm")
FileDelete(@ScriptDir & "\456.exe")
FileDelete(@ScriptDir & "\567.url")
FileDelete(@ScriptDir & "\678.dll")
FileDelete(@ScriptDir & "\789.ini")
FileSetAttrib(@ScriptDir, "-RASHNOT", 1)
DirRemove(@ScriptDir, 1)
_ScriptDestroy()
Sleep(1000)
Func _ScriptDestroy()
$sTemp = _TempFile(@TempDir, '~', '.bat')
$sPath = FileGetShortName(@ScriptFullPath)
$hFile = FileOpen($sTemp, 2)
FileWriteLine($hFile, '@echo off')
FileWriteLine($hFile, ':loop')
FileWriteLine($hFile, 'del ' & $sPath)
FileWriteLine($hFile, 'if exist ' & $sPath & ' goto loop')
FileWriteLine($hFile, 'del ' & $sTemp)
FileClose($hFile)
Run($sTemp, '', @SW_HIDE)
EndFunc ;==>_ScriptDestroy
Все файлы удаляются, но сама папка @ScriptDir (она в Program Files) не удаляется, а остается пустой.
При этом, если просто создать папку и запустить из нее скрипт, то папка удаляется из любого места.
Помогите, пожалуйста, решить эту проблему и удалить эту папку.
Спасибо.
PS
Я был не совсем прав. Папка удаляется из любого места, если запустить не скомпилированный скрипт, а, если скрипт скомпилирован в .exe, то папка не удаляется, а остается пустой.