Запретить переход между окнами

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Запретить переход между окнами

Сообщение natcap » 18.02.2010 (Чт) 15:53

Честно искала, но найти так и не смогла..
Как запретить любой переход с моего приложения на другие? Т.е. запретить Alt + F4, Alt + Tab, Ctrl + Alt + Delete и др.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Запретить переход между окнами

Сообщение Денис » 19.02.2010 (Пт) 9:06

Я слыхал Ctrl + Alt + Delete неперехватываемая.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Re: Запретить переход между окнами

Сообщение natcap » 19.02.2010 (Пт) 21:32

А остальные?
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: Запретить переход между окнами

Сообщение Admiralisimys » 22.02.2010 (Пн) 12:26

natcap саму комбинацию Alt+F4 не трудно отработать самостоятельно в программе.
Код: Выделить всё
Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs)
   If (e.Alt) And (e.KeyValue = Keys.F4) Then
            e.Handled = False
   End If
End Sub

Слово комбинация выделено не даром, так посредством закрывающего крестика и меню в панели задач "Закрыть" из программы удасца выйти.
Более фундаментально стоит работать с Protected Overrides Sub OnClosed(ByVal e As EventArgs) / Protected Overrides Sub OnClosing (e As CancelEventArgs) (.NET 1.X и выше), Protected Overrides Sub OnFormClosed(ByVal e As FormClosedEventArgs) / Protected Overrides Sub OnFormClosing(ByVal e As FormClosingEventArgs) (.NET2.0 и выше).

Alt + Tab первым способ перехватить не выйдет, можно даже не пробовать.

Ctrl+Alt+Del достаточно серьёзная комбинаций, что бы её перехватить, и тем более на прикладном уровне. Если и это возможно, то стоит копать в сторону литературе по ядру системы, и перехватывать этот вызов на системном уровне. Но это уже явно не на .NET
Во всех остальных случаях стоит проверять, является окно поверх всех и выделенное.


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

    TopList