Программирование
Веб программирование

Запретить Юзеру выйти из программы на vb

 
 

Всего в мире есть 2 вида юзеров - это обычный, и продвинутый. Запретить выход обычному юзеру можно поставив у формы свойство ControlBox = False, и кнопка выхода исчезнет(), тогда юзер начнет нервничать и может нажать на Reset

А вот если перед нами стоит продвинутый юзер, то он намного хитрее, и спокойно закроет программу щелкнув правой кнопкой мыши по заголовку формы, и в меню нажмет закрыть, или просто нажмет Alt + F4.И перед нами возникает вопрос: "Как запретить юзеру выйти из программы", или не обязательно запретить, а хотя бы спросить его. Так например в Блокноте, где я сейчас пишу этот учебник, перед выходом он запрашивает: "Текст в файле ... был изменен. Сохранить изменения?".

Ну короче не буду тебя грузить, что может случиться, а сразу перейдем к делу. Создай новый проект(Standart EXE), вот код с пояснением.

'Создай процедуру UnLoad
Private Sub Form_Unload(Cancel As Integer) ' При выходе из программы:
b = MsgBox("Хей! Юзер поганый, только попробуй меня закрыть... ", 20, "Не надо - ПЛИЗ!!!") ' Идет запрос
If b = 7 Then ' если нажимаешь Нет - то возврат в программу, если Да выход
Cancel = True
End If

Вот и все! Теперь из твоей программы не выйдет даже самый хитрый юзер.


Есть вопросы? Спроси на нашем форуме!!
Purgen [09.06.2010 21:15]

как угарно, а всё это работает

Добрый Человек [02.10.2010 21:50]

у меня работает!=)

ЮРА [02.11.2010 17:40]

КАК ЗАПРЕТИТЬ ИСПОЛЬЗОВАТЬ "ALT+CONTROL+DEL"

Вася [02.01.2011 00:07]

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

Руслан [28.05.2011 19:40]

Хм. через диспетчер в процессах всёравно можно завершить, как некрути......

[QHTM]KILLO [13.08.2011 10:29]

Отключите диспетчер задач через реестр и будет вам счастье!

Тёма [31.08.2011 22:03]

С юзером прокатит, а умный человек сначала вскроет батник, посмотрит код и потом подумает запускать или нет..

Тёма протупил причём жестоко [31.08.2011 22:06]

Блин подумал что это тоже батник)) наночь перед 1-м сентября ваще мозг непашит) Отмечал последний день лета))

MrDkfl007 [05.09.2011 13:30]

Легко закрыть диспетчером - "убив" процесс и программа даже "заикнуться" не успеет.

P.S. Тоже самое происходит при выключении компьютера, когда вам какая-то назойливая программа выдаёт ошибку. Сначала Windows закрывает её "нормальным" способом который равен Alt-F4, а если не помогает - закрывает процесс этой программы.

ZETA [08.09.2011 21:52]

Поставь на Ctrl выключение компьютера))) и автозагрузку проги, никогда не закроет её юзер

Вован [12.09.2011 18:53]

Придурки вы... Создайте на форме 3 таймера, поставьте каждому интервал 1. После чего вставьте следующий код:
Private Sub Timer1Timer()
On Error GoTo errorer ' если не запущен диспетчер то будет ошибка
AppActivate "Диспетчер задач Windows" ' ПЕРЕДАЕМ ФОКУС
SendKeys "%{F4}" ' Посылаем Alt + F4
errorer:
End Sub

Private Sub Timer2
Timer()
On Error GoTo errorer ' если не запущен диспетчер то будет ошибка
AppActivate "Редактор реестра" ' ПЕРЕДАЕМ ФОКУС
SendKeys "%{F4}" ' Посылаем Alt + F4
errorer:
End Sub

Private Sub Timer3_Timer()
On Error GoTo errorer ' если не запущен диспетчер то будет ошибка
AppActivate "Конфигурация системы" ' ПЕРЕДАЕМ ФОКУС
SendKeys "%{F4}" ' Посылаем Alt + F4
errorer:
End Sub

viagra [17.09.2011 09:51]

excellent article. But I need more written

Ильдар [07.12.2011 19:38]

Непонятно, немного!
Что означает:
Cancel = True
И если мы нажали "Да" - где в коде написано, что делать в этом случае?

алексей [08.12.2011 14:15]

ильдар не тупи.
если ты код для выкл. проги не пишишь то он выключаеться
cancel=true' это для того чтоб прога оставалась включеной
можно написать так
Private Sub Form_Unload()
Cancel = true ' при попытки выкл. прога останеться включеной влюбом случае. кроме выкл. через диспетчер
End sub


ильдар в коде
'если не нажал нет то пропускает код "cancel=true" и выключаеться

TiWin [13.12.2011 22:32]

У меня на висте это не работает бесполезно даже в самом байсеке вот код программы:
Private Sub cmdWorcClick()
lblText.Caption = "...."
imgStell.Visible = False
cmdExit.Visible = True
End Sub

Private Sub cmdExit
Click()
End
End Sub

Private Sub frmStella_Unload(Cancel As Integer)
b = MsgBox("... ", 20, "...")
If b = 7 Then
Cancel = True
End If
End Sub

fkons0012 [08.04.2012 19:33]

Вот как сделать, чтобы прога в диспетчере за дач не была видна:
Private Sub Form_Load()
App.TaskVisible = False
End Sud

эдуард [13.04.2012 21:54]

ты чё имееш ввиду

Игорь [09.06.2012 18:00]

fkons0012, Это не работает прога не видна только в трее

Игорь [09.06.2012 18:02]

ЛЮДИ!!! а как сделать так чтобы это программа сама себя добавила в автозагрузку

Release [09.06.2012 18:31]

Смотри новые уроки. Создаешь ярлык программы и перемещаешь его в папку автозагрузки или добавляешь в реестр

zhozhek30 [25.09.2013 21:55]

а как самому ее закрыть? )))))

alex13sh300 [25.09.2013 22:41]

Диспетчер задач, слышал о таком?

zhozhek30 [26.09.2013 11:17]

а все равно, толку то ее делать???

aramkrutoy [19.11.2016 12:38]

Проще так:
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub

Stertor [05.12.2016 12:00]

Уже долгие месяцы сайт пустует. Никто не публикует статей, исходников, очевидно, пользователи выросли из бейсика, нет прежней романтики... Неужели это конец?

alex13sh300 [26.12.2016 20:35]

Ухх, вспомнил парольку от акка, чтоб ответить)
Даа... Я уже с 14 года Бейсик забросил( Но недавно вспоминал, чтоб быстренько прожку для ком-порта написать)
уже 3 года Qt C++.
Раз многие выросли с бейсика, то пора рамки сайта расширять и добавлять больше языков.

Я вообще удивлён что сайт есчо активен. Ибо сайт не развивается, разраб давно на лалипопе

aramkrutoy [01.01.2017 03:27]

Сайт умер, как я вижу. вот решил всю инфу себе на комп качать, жалко столько инфы по Vb пропадает, такого количества полезной инфы по Vb в одном месте я ещё не видел!

Stertor [02.01.2017 20:43]

уже 3 года Qt C++.

Я видел твои дерьмоуроки здесь. Начав быдлокодить на бейсике, теперь продолжаешь на плюсах?

alex13sh300 [09.01.2017 20:48]

На бэсике трудно не быдлокодить. Ибо кастрированные классы, из-за чего не использовал их.
Мне даж интересно, как можно начинать шкодить на бэасике и при этом не писать быдлокод?
Да, уроки от меня - дерьмо. Как и большинство в то время.

Stertor [10.01.2017 17:35]

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



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.