Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / самоуничтожение программы / 6 сообщений из 6, страница 1 из 1
23.09.2003, 11:42
    #32272684
Nrisimha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
самоуничтожение программы

Как сделать самоуничтожение программы? Приведите плиз пример.
...
Рейтинг: 0 / 0
23.09.2003, 11:51
    #32272702
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
самоуничтожение программы
А в чем трабла?
...
Рейтинг: 0 / 0
23.09.2003, 11:54
    #32272706
Nrisimha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
самоуничтожение программы
Юзер запускает программу exe (Vb6.0) , программа делает необходимые обновления и самоудаляется :-)
...
Рейтинг: 0 / 0
23.09.2003, 11:54
    #32272709
Hibernate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
самоуничтожение программы
поищи на vbrussian.com видел точно.
...
Рейтинг: 0 / 0
23.09.2003, 12:07
    #32272724
Nrisimha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
самоуничтожение программы
Спасибо Hibernate

вот оно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Command1_Click()
'-----------Создает батфайл---------------
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
' --------------------------------
 
Shell App.Path +  "\Delself.bat" , vbHide
End Sub
...
Рейтинг: 0 / 0
23.09.2003, 15:30
    #32273150
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
самоуничтожение программы
"Самоуничтожение" предполагает, что программа сама определяет условия, когда нужно и когда можно "самоликвидироваться".
Мне пришлось вставить в одну из своих программ такую обработку:
1. При загрузке программ определяет наличие своей новой версии на общедоступном сервере и, если дата серверной копии - свежая, принимает решение, что "нужно".
2. Так как она уже загружена в память, то породивший её файл заблокирован и не может быть удалён. Как в обряде "сэпукку", должен быть ассистент, отрубающий голову после вспарывания живота: такой процесс и запускается из этой "суицидной" программы. Программа же завершает свою работу.
3. Ассистент закрывает все копии уничтожаемой программы, дожидается завершения их работы и только после этого замещает "старый" ехе-шник новым.

Приведенный bat-ник не закрывает копии программ, поэтому может "циклить".
Ассистент использует следующие функции API:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Declare Function GetWindowText Lib  "user32"  Alias  "GetWindowTextA"  (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Public Declare Function EnumWindows Lib  "user32"  (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

Public Declare Function SendMessage Lib  "user32"  Alias  "SendMessageA"  (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Function GetExitCodeProcess Lib  "kernel32"  (ByVal hProcess As Long, ByRef lpExitCode As Long) As Long


"Убиение окон" реализовано на основе кода http://sharig.webzone.ru/vbcode/09_wind/173.htm
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / самоуничтожение программы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]