Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.86
nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 292
Записей в блоге: 1
#1

Запрет закрытия программы по Alt+F4 - Visual Basic .NET

25.07.2011, 01:37. Просмотров 3000. Ответов 7
Метки нет (Все метки)

Здравствуйте! Скажите, пожалуйста, как сделать чтобы програмка не выключалать комбинацией Alt+F4

Добавлено через 4 часа 3 минуты
И в диспетчере задач также не отключалась?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2011, 01:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запрет закрытия программы по Alt+F4 (Visual Basic .NET):

Закрытия первого окна формы без закрытия всей программы
Прошу помочь: в программе два окна, в начале открывается первое, после нажатия...

Подтверждение закрытия программы
Друзья! Подскажите, кто в курсе: как сделать так, чтобы при закрытии программы...

Событие до жесткого закрытия программы
Есть ли какое-то событие, до того, как программа была жестко закрыта? Например,...

После закрытия программы ее процесс продолжает работать
visual basic 2010 при закрытии программа остается в процессах что делать

Сохранение свойств компонентов после закрытия программы
Помогите не могу разобраться( На поле есть label1.text = 100 После нажатия...

Как сохранить изображение в PictureBox до полного закрытия программы
Здравствуйте. Программа состоит из двух форм - Form1 (главная) и Form2. На...

7
Bazzy
191 / 184 / 14
Регистрация: 09.02.2011
Сообщений: 458
25.07.2011, 02:16 #2
vb.net
1
2
3
4
5
6
7
8
 Private Sub Form1_KeyDown(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
 
        If e.Alt = True And e.KeyCode = Keys.F4 Then
            e.Handled = True
        End If
 
    End Sub
или

vb.net
1
2
3
4
5
6
7
    Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
        If keyData = (Keys.Alt Or Keys.F4) Then
            Return True
        Else
            Return MyBase.ProcessCmdKey(msg, keyData)
        End If
    End Function
а на счет диспетчера задач надо помозговать
1
nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 292
Записей в блоге: 1
25.07.2011, 02:24  [ТС] #3
А как сделать чтобы при нажатии альт ф4 срабатывало определенное действие? Куда вписывать код действия?
0
Darth Coder
281 / 262 / 107
Регистрация: 10.06.2011
Сообщений: 696
25.07.2011, 09:19 #4
vb.net
1
2
3
4
5
6
7
8
9
Private Sub Form1_KeyDown(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
 
        If e.Alt = True And e.KeyCode = Keys.F4 Then
msgbox "так меня не закроешь :)"            
e.Handled = True
        End If
 
    End Sub
или

vb.net
1
2
3
4
5
6
7
8
    Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
        If keyData = (Keys.Alt Or Keys.F4) Then
msgbox "так меня не закроешь :)"            
Return True
        Else
            Return MyBase.ProcessCmdKey(msg, keyData)
        End If
    End Function
1
Bazzy
191 / 184 / 14
Регистрация: 09.02.2011
Сообщений: 458
25.07.2011, 11:14 #5
C диспетчером все еще проще:
vb.net
1
2
3
 Private Sub form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If e.CloseReason = CloseReason.TaskManagerClosing Then e.Cancel = True
    End Sub
1
nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 292
Записей в блоге: 1
25.07.2011, 12:43  [ТС] #6
Может я както не правильно вставляю код, но на диспетчер не работает кол - всеравно вырубается))
0
Bazzy
191 / 184 / 14
Регистрация: 09.02.2011
Сообщений: 458
25.07.2011, 22:07 #7
Варианта 2:
1 - Вы должны добавить
vb.net
1
 If e.CloseReason = CloseReason.TaskManagerClosing Then e.Cancel = True
в обработку события FormClosing Вашей формы (это скорее всего не Form2)
2 - Если Вы завершаете процесс через диспетчер задач а не снимаете задачу в приложениях то этот код не поможет.

Добавлено через 3 минуты
Можно попробовать написать службу, которая будет следить за тем есть Ваш процесс или нет и если его закрыли запускать его заново...
0
Treals
29 / 29 / 3
Регистрация: 25.05.2011
Сообщений: 308
25.07.2011, 22:35 #8
vb.net
1
2
3
4
5
6
Private Sub form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If e.CloseReason = CloseReason.TaskManagerClosing Then
            e.Cancel = True
        End If
 
    End Sub
В такой форме вставь код
0
25.07.2011, 22:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2011, 22:35
Привет! Вот еще темы с решениями:

Нажатие сочетания клавиш Alt+1 и Alt+2
Если нажать Alt+1 выдать сообщение что нажата Alt+1 Если нажать Alt+2 выдать...

Иконка в системном трее NotifyIcon. После закрытия программы не исчезает
Добрый день. В приложении используется NotifyIcon для отображения иконки в...

Win API для закрытия окна другой программы (WM_CLOSE)
Как использовать WinAPI для закрытия сторонней программы(например Visual...

Убрать панель области уведомлений после закрытия программы из трея
После закрытия программы (Application.Exit()), ее значок исчезает из трея, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru