Вам нужно сделать так, чтобы пользователь не смог закрыть окно Вашей программы и выйти
из неё. Запретить закрытие окна легко реализовать добавлением к коду программы всего
нескольких строк!
        
Откройте новый стандартный проект, разместите на форме кнопку CommandButton с именем
Command1, CheckBox с именем Check1. Для выхода будет служить кнопка и стандартная красная
кнопка с крестиком в правом верхнем углу окна в ControlBox. CheckBox нам будет нужен
в роли условия в Вашей программе, при выполнении которого выход станет возможен. Теперь
поместите код в модуль формы:
'Объявим переменную для определения возможности выхода
Dim Выход As Boolean
Private Sub Check1_Click()
'''ПРОЦЕДУРА ОБРАБОТКИ ИЗМЕНЕНИЯ НАЛИЧИЯ ФЛАЖКА'''
'Меняем состояние переменной возможности выхода на обратное:
Выход = Not (Выход)
End Sub
Private Sub Command1_Click()
'''ПРОЦЕДУРА НАЖАТИЯ КНОПКИ ВЫХОДА'''
'Если выход разрешён, делаем это (Фрагмент кода "Выход" равносилен фрагменту "Выход = True", _
поэтому для сокращения кода убираем "= True"):
If Выход Then End
'Если выход не был разрешён, переходим к процедуре обработки _
события закрывания окна, в которой это закрывание и отменим:
Form_QueryUnload False, 0
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'''ПРОЦЕДУРА ОБРАБОТКИ СОБЫТИЯ - ЗАКРЫВАНИЕ ОКНА'''
'Если выход запрещён, запускаем нашу же программу ещё раз:
If Выход = False Then Shell App.EXEName, vbNormalFocus
'Закрываем программу:
End
End Sub
        
Откомпилируем проект в отдельную exe-программу, запустим её. Теперь попробуем выйти
через кнопку или нажатием на красную с крестиком - программа перед своим закрытием
вызывает себя снова, возрождаясь, подобно Фениксу!
        
А теперь о дёгте. После нажатия "Ctrl-Alt-Del" во время работы запущенной программы
попытаемся на вкладке "Приложения" нажать "Снять задачу". Конечно же, эффект будет
как и при нажатии кнопки выхода при запрете выхода. Но вот если заглянуть в список
работающих процессов... Мне ничего неизвестно о том, существует ли способ запрета
показа списка запущенных процесов или запрета их отмены в WindowsXP. Если кому что
известно - пожалуйста, сообщите. В Windows98 запрет на показ программы в списке
процессов делается при помощи функции Win32 API - RegisterServiceProcess.