Удаление...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Удаление...

Сообщение Tarantul » 05.05.2005 (Чт) 19:55

Как сделать так, чтобы программа удалила сама себя?

Мамонт
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 479
Зарегистрирован: 21.02.2005 (Пн) 16:48
Откуда: Ленинград

Сообщение Мамонт » 05.05.2005 (Чт) 20:26

kill app.exename

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 05.05.2005 (Чт) 20:45

Format C:

Ты уверен?

А то, что "Файл занят другим процессом" тебе не пришло в голову?

Tarantul

Надо создавать бат-файл...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 05.05.2005 (Чт) 20:52

Так... подумал я и решил избежать лишних вопросов.

Вот код завершения с удалением:

Код: Выделить всё
Open "del_me.bat" For Output As #1 'создаем bat
Print #1, "del " & Chr(34) & App.EXEName & ".exe" & Chr(34) 'учим bat удалять нас
Print #1, "del %0" 'обучаем bat искусству камикадзе
Close #1 'сохраняем то, что натварили
Shell "del_me.bat" 'запускаем того, кто нас убьет и харакири сделает
End 'принимаем снотворное чтоб не больно было...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 05.05.2005 (Чт) 21:39

Спасибо, работает. Вижу, основное достоинство бата в том, что он видимо ждет, пока программа закруглиться :)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 05.05.2005 (Чт) 21:44

Нет. Он не ждет. Основное достоинство в том, что он не "файл занят другим процессом" и его можно удалить из самого себя.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 06.05.2005 (Пт) 8:00

Для гарантии лучше сделать так:
Код: Выделить всё
Open App.Path + "\Delself.bat" For Append As #1
Print #1, "@echo off"
Print #1, ":try"
Print #1, "del " + App.EXEName + ".exe"
Print #1, "if exist " + App.EXEName + ".exe goto try"
Print #1, "del " + App.Path + "\Delself.bat"
Close №1
Shell App.Path + "\Delself.bat", vbHide
end
الفيجوال بيسك الرابح

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 06.05.2005 (Пт) 13:32

1) App.path я и сам хотел добавить, но потом подумал, что незачем...
2)@ech off излишне тк вне зависимости от настроек это окно даже не видно
3)А представь если почему-то файл не удаляется... Эта чтука зациклится...
4)Close #1
5)А вот vbHide - Это правильно. Забыл...
6)for Append я вно не в тему... А если файл существует? и он нужный? А мы в него пишем самоудаление?

Вот только проблема с уществованием файла... Тогда так:

Код: Выделить всё
'----General Declarations
Peivate Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
'----


Код: Выделить всё
f_name: FileName = "Del_Me" & CInt(Rnd * 9999) & ".bat"

If PathFileExists(FileName) Then GoTo f_name
Open FileName For Output As #1
Print #1, "del " & App.EXEName & ".exe"
Print #1, "del " & FileName
Close #1
Shell fileName, vbHide
End


Во как! Из маленькой простенькой программки можно сделать огромную программищу! =)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Pocket dj
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 07.05.2005 (Сб) 19:04
Откуда: Москва

Удаление...

Сообщение Pocket dj » 07.05.2005 (Сб) 20:00

Придурки :?:

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 07.05.2005 (Сб) 21:19

Pocket dj

Что тебе не нравится?
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 07.05.2005 (Сб) 21:20

ЗЫ. Придурка только одного я вижу...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 11.07.2005 (Пн) 15:44

Еще одна проблемка...

Дело в том, что мне надо удалить папку, в которой находиться исполняемый файл.А BAT очень глючит, и либо удаляет только файл, либо вообще ничего не удаляет :( Подскажите какой-нить способ по надежнее :)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 11.07.2005 (Пн) 15:48

Код: Выделить всё
del /F /S /Q program.exe

Кажется, этого должно хватить. Мне хватает, во всяком случае :).

JohnCR
Обычный пользователь
Обычный пользователь
 
Сообщения: 75
Зарегистрирован: 14.06.2005 (Вт) 19:03

Сообщение JohnCR » 11.07.2005 (Пн) 16:18

cmd /k rd /?

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 11.07.2005 (Пн) 19:48

Чето у меня всеравно фигня какая то... А можно примерчик выложить, где исполняемая прога удаляет папку, в которой она находиться?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.07.2005 (Вт) 4:05

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 12.07.2005 (Вт) 9:54

http://bbs.vbstreets.ru/viewtopic.php?t=17207

Темы, которую вы запросили, не существует.

:cry:

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 12.07.2005 (Вт) 10:17

фсе открываеца нормально :)

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 12.07.2005 (Вт) 15:38

Не знаю, что там у кого открываецца :) , а у меня сначала требует ввести имя пользователя и пароль, а потом говорит, что этой темы не существует :(

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 12.07.2005 (Вт) 22:12

Уже все открываеццца :) - :) глюк прошел


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 77

    TopList  
cron