Почему не срабатывает Unload Me

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Zp
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 27.06.2005 (Пн) 18:53

Почему не срабатывает Unload Me

Сообщение Zp » 01.10.2005 (Сб) 23:13

If 1 = 1 Then
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName & ".exe", App.Path & "\" & App.EXEName & ".exe"
MsgBox "Write OK"
Unload Me
End If

MsgBox "ggg" 'отрабатывает

что за хрень.?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2005 (Сб) 23:16

Для немедленного завершения есть оператор End.
Изображение

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

Сообщение GSerg » 01.10.2005 (Сб) 23:19

Если вслед за unload идут ещё команды, то происходит unload, затем load, затем начинают выполняться эти команды.
Exit sub.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Zp
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 27.06.2005 (Пн) 18:53

Сообщение Zp » 01.10.2005 (Сб) 23:34

Если Exit sub то прога остается висеть в памяти...

Zp
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 27.06.2005 (Пн) 18:53

Сообщение Zp » 01.10.2005 (Сб) 23:40

If Command = "write" Then
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName & ".exe", App.Path & "\" & App.EXEName & ".exe"
MsgBox "Write OK"
Unload Me
Exit Sub
End If

так вроде...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.10.2005 (Вс) 23:32

Вместо Me - For Each hForm In VB.Forms > Unload hForm
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

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

Сообщение Мамонт » 03.10.2005 (Пн) 8:30

А почемеу нельзя просто вот твк?:
Код: Выделить всё
If Command = "write" Then
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName & ".exe", App.Path & "\" & App.EXEName & ".exe"
MsgBox "Write OK"
END
End If

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 03.10.2005 (Пн) 8:38

Перед закрытием проги желательно закрыть все ее окна (формы), выгрузить все объекты и т.д. Как-то я столкнулся с такой проблемой (прога что-то оставляла в памяти, а что Х.З.), так пришлось выход делать через TerminateProcess.
А я все практикую лечение травами...


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

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

Сейчас этот форум просматривают: Google-бот и гости: 30

    TopList