Русское сообщество AutoIt

  • Май 20, 2012, 12:02:52 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: Удаление самого себя  (Прочитано 3285 раз)

0 Пользователей и 1 Гость смотрят эту тему.

kosteel [?]

Удаление самого себя
« Создано: Октябрь 02, 2009, 19:27:07 »
Как-то видел в хелпе автоита функцию которая удаляет скрипт по завершению выпонения (то есть сам себя скрипт удаляет), и как всегда, когда не надо попадалсь на глаза, а теперь в упор найти не могу, весь хелп излазил, помогите.

Нужна для деинсталятора.




  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3967
  • Версия AutoIt: 3+
    • Награды
Re: Удаление самого себя
« Ответ #1, Отправлен: Октябрь 02, 2009, 19:56:23 »
Код: AutoIt [Выделить]
ShellExecute('cmd.exe', '/k del "' & @ScriptFullPath & '"', '', '', @SW_HIDE)
 




  Записан
Думай, прежде чем говорить.

kosteel [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 3
  • Версия AutoIt: 3.2
    • Награды
Re: Удаление самого себя
« Ответ #2, Отправлен: Октябрь 02, 2009, 20:00:22 »
Спасибо, только там просто функция была, то ли параметр в "opt" то ли макрос, ну да ладно, этот сценарий работает и замечательно.




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Re: Удаление самого себя
« Ответ #3, Отправлен: Октябрь 02, 2009, 20:09:53 »
kosteel [?]
Цитата
только там просто функция была, то ли параметр в "opt" то ли макрос
Небыло такого.

P.S
Для предотвращения конфликтов при удалении, нужно установить паузу:

Код: AutoIt [Выделить]
ShellExecute('cmd.exe', '/k ping -n 2 localhost < nul & del /F /Q "' & @ScriptFullPath & '"', '', '', @SW_HIDE)




  Записан
Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.



«Не оказываю техподдержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

kosteel [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 3
  • Версия AutoIt: 3.2
    • Награды
Re: Удаление самого себя
« Ответ #4, Отправлен: Октябрь 02, 2009, 20:16:28 »
Ложная память )))

На счет паузы спасибо, у меня машинка шустрая, все прошло без запинок, а вот на других могло и запнуться.




  Записан

SECTOR [?]

  • Осваивающий
  • **
  • Репутация: 37
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 358
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Удаление самого себя
« Ответ #5, Отправлен: Октябрь 02, 2009, 20:16:59 »
А что просто:
Код: AutoIt [Выделить]
не пойдёт? :blink:

Medic84 [?]

  • Администратор
  • *
  • *****
  • Репутация: 161
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 942
  • Версия AutoIt: 3.3.6.1
    • WWW
    • Награды
Re: Удаление самого себя
« Ответ #6, Отправлен: Октябрь 02, 2009, 20:51:45 »
А что просто:
Код: AutoIt [Выделить]
не пойдёт? :blink:
Нет. Т.к. скрипт еще будет работать, из-за чего может выдадть ошибку удаления.




  Записан
   
На форуме принято отмечать полезные сообщения кнопкой "Полезное сообщение"
Никогда не даю подробных примеров сразу, я сначала навожу на мысль - как можно написать. Учитесь мыслить сами, а не за других людей.
Моя лаборатория - программы, статьи и ответы на вопросы.

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3967
  • Версия AutoIt: 3+
    • Награды
Re: Удаление самого себя
« Ответ #7, Отправлен: Октябрь 02, 2009, 21:44:01 »
Для предотвращения конфликтов при удалении, нужно установить паузу

Это необязательно, если следующей строкой будет стоять Exit.




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Re: Удаление самого себя
« Ответ #8, Отправлен: Октябрь 02, 2009, 22:01:08 »
Yashied [?]
Цитата
Это необязательно, если следующей строкой будет стоять Exit.
Как показывает практика, будет надёжнее с паузой. Скомпилированы скрипт не всегда будет удалён.

Medic84 [?]
Цитата
скрипт еще будет работать, из-за чего может выдадть ошибку удаления.
Ошибку наврядли (в моём примере), но то что скомпилированы скрипт не удалится это точно.




  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3967
  • Версия AutoIt: 3+
    • Награды
Re: Удаление самого себя
« Ответ #9, Отправлен: Октябрь 02, 2009, 22:30:35 »
kosteel, вот тебе функция. Надежная как скала. :wall_brake:

Код: AutoIt [Выделить]
#Include <File.au3>

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

_ScriptDestroy()
MsgBox(0, '', 'Wait...')




  Записан

VitAl2013 [?]

  • Гость
Re: Удаление самого себя
« Ответ #10, Отправлен: Октябрь 27, 2009, 15:53:19 »
А это не пойдёт? Пока не пробовал, просто первая мысль
Код: AutoIt [Выделить]
OffTopicДа и к стати это стандартная функция в хэлпе выделена синим, как слово Func - раскрашиватель поправить надо.




  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3967
  • Версия AutoIt: 3+
    • Награды
Re: Удаление самого себя
« Ответ #11, Отправлен: Октябрь 27, 2009, 21:57:41 »
А это не пойдёт?

Ты невнимательно читал эту тему.




  Записан

Kaster [?]

  • Глобальный модератор
  • *
  • *****
  • Репутация: 502
  • Online Online
  • Пол: Мужской
  • Сообщений: 3286
  • Версия AutoIt: 3.3.8.1
  • Мой Аватар, он лучший самый
    • Награды
Re: Удаление самого себя
« Ответ #12, Отправлен: Октябрь 28, 2009, 12:08:12 »
Ты невнимательно читал эту тему.
удивительно, но простой скрипт сам себя удалил, таким образом  ;D
Код: AutoIt [Выделить]
HotKeySet('^{DEL}', '_Exit'); Ctrl+Del for exit
While 1
    Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc

Func OnAutoItExit()
    FileDelete(@ScriptFullPath)
EndFunc
 




  Записан
Конференция посвященная AutoIt на jabber.ru - autoit@conference.jabber.ru
Как попасть на конференцию читаем тут
Файлы можете качать сюда - Файловая область
Продолжать дискуссию в теме отмеченной как "Решенная" - моветон.
Банхамером не обладаю, так что расслабьтесь ;)
Банхамером обладаю, так что не расслабляться :Ban:

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3967
  • Версия AutoIt: 3+
    • Награды
Re: Удаление самого себя
« Ответ #13, Отправлен: Октябрь 28, 2009, 12:10:11 »
Да, это работает, но это не есть "The best".




  Записан

SyDr [?]

  • Модератор
  • *
  • *****
  • Репутация: 151
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 630
  • Сидра
    • Награды
Re: Удаление самого себя
« Ответ #14, Отправлен: Ноябрь 08, 2009, 14:43:24 »
Есть два скомпилированных скрипта. Скажем Exe1.exe и Exe2.exe
Запускаю Exe1.exe
В нём есть строчка:
Код: AutoIt [Выделить]
Exit Run('Exe2.exe /AutoIt3ExecuteLine "FileDelete(''Exe1.exe'')"')

Работает как надо. Вопрос, насколько это надёжно? Может мне просто везёт? Вариант, что Exe1.exe заблокирован каким-либо другим приложением рассматривать не надо.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
[Новая функция] Запись в саму себя
Баг-репорты и запросы на новые функции
VitAl2013 45 9749 Последний ответ Ноябрь 25, 2010, 09:10:17
от aleratorio
Как удалить себя?
AutoIt для новичков
L-Sid 2 833 Последний ответ Май 03, 2010, 17:47:29
от madmasles
Как из скрипта запустить самого себя (т.е., запустить этот же самый скрипт?)
AutoIt для новичков
akoulev 7 1668 Последний ответ Май 21, 2010, 15:14:14
от CreatoR
функция вызывающая саму себя.
AutoIt для новичков
yaodnako 7 1354 Последний ответ Май 30, 2010, 17:23:07
от yaodnako
[Процессы] Пример запуска себя с админстраторскими правами (UAC)
Полезняшки
SyDr 6 2634 Последний ответ Август 10, 2010, 15:28:04
от SyDr
Что из себя представляет Func
Общение
lexaSF 15 2273 Последний ответ Февраль 23, 2011, 09:31:58
от serzzz
Скомпилированный скрипт автоматически многократно себя запускает
AutoIt для новичков
prokazzza 12 1185 Последний ответ Февраль 23, 2011, 16:06:54
от CreatoR
Перенесено: Что из себя представляет Func
AutoIt для новичков
`p r o x y 0 385 Последний ответ Февраль 23, 2011, 05:33:07
от `p r o x y
Как узнать PID самого скрипта?
AutoIt для новичков
La2Angel 2 343 Последний ответ Сентябрь 30, 2011, 02:23:59
от La2Angel
[Элементы GUI] Как на кнопку повесить несколько действий (удаление процесса и удаление файла)
AutoIt для новичков
Matisse 13 305 Последний ответ Март 25, 2012, 20:53:34
от Matisse


Реклама

* Последние сообщения на форуме
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15
post Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] aak Сегодня в 09:41:45
post Re: Как спарсить ссылку внутри тега "td" определенного класса
[Регулярные выражения и прочее] eropov Сегодня в 05:27:00
post Re: Ограничение доступа(блокировка) к компьютеру если не вставлен носитель с ключом
[AutoIt для новичков] Pat4005 Сегодня в 01:02:55
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Сегодня в 00:02:03
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Май 19, 2012, 23:55:37
post Узнать значение возвращаемое функцией javascript
[Автоматизация IE и Web-интерфейса] Viktor1703 Май 19, 2012, 23:25:05
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] sngr Май 19, 2012, 23:06:52
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] Dm666 Май 19, 2012, 22:38:13
post Re: Иконка AutoIt3 для разных Dock-ов
[Графика и творчество в рамках AutoIt] Ganibal95 Май 19, 2012, 22:21:35

* Пользователи онлайн
  • Dot Гостей: 86
  • Dot Скрыт: 1
  • Dot Пользователей: 24
  • Dot Пользователи Online: