Страница: 1 |
У меня есть сделанный на VB анинсталлер, который удаляет все необходимые записи из реестра. нужные файлы и т.д. Но как сделать так, что бы этот анинсталлер удалял сам себя и папку, где он находиться, не используя при этом ДОС и BAT-файлы, а именно средствами VB или возможностями Windows?
Удаление директории (не удаляет файлы и поддиректории) Удаление файла RmDir удаляет пустую папку. Перед этим нужно сделать всем "Kill *" ) Зря ты кстати против BAT файов. В конце концов DOS shell можно запустить невидимо с приоритетом IDLE. Кстати в MSDN есть статья на эту тему, там они останавливаются на этом методе. Но файлы можно удалить и более извращённо (правда WinNT/2K/XP only). Public Const MOVEFILE_DELAY_UNTIL_REBOOT = &H4 Public Declare Function MoveFileEx ( ByVal lpExistngFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long и делаешь MoveFileEx твойфайл, vbNullString, MOVEFILE_DELAY_UNTIL_REBOOT После перезагрузки твой файл удалится. Есть ещё более хитрый способ, когда удаляющий код записывается в отдельную область памяти, но он не реализуется на VB. Наконец, можно прописать что-нибудь удаляющее в реестр в RunOnce на автозагрузку. Правда ничего кроме del dir\*.* в голову не приходит, но, тем не менее... Страница: 1 |
Вопрос: Как удалить файл?
Добавлено: 14.01.03 15:02
Автор вопроса: JF
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
BIV
Вопросов: 4
Ответов: 27
Профиль | | #1
Добавлено: 14.01.03 15:13
Public Declare Function NSA_API_RemoveDirectory Lib "kernel32.dll" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long
'Возвращает 1 в случае успешного удаления, иначе 0.
'lpPathName - имя директории
Public Declare Function NSA_API_DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
'Возвращает 1 в случае успешного удаления, иначе 0.
'lpFileName - имя файла
Номер ответа: 2
Автор ответа:
msv
Вопросов: 34
Ответов: 312
Web-сайт:
Профиль | | #2
Добавлено: 15.01.03 07:20
Можно проще: RmDir(путь)
Номер ответа: 3
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #3
Добавлено: 15.01.03 09:52
Номер ответа: 4
Автор ответа:
Андрей Щёкин [darxeth]
ICQ: 161560107
Вопросов: 9
Ответов: 52
Web-сайт:
Профиль | | #4
Добавлено: 16.01.03 00:57