Блокировка CTRL+ALT+DEL и ALT+TAB в Windows 95/98
Иногда возникает необходимость в Visual Basic приложении отключить на время для пользователя возможность использования комбинаций CTRL+ALT+DEL и ALT+TAB. Ниже на примере показано как можно этого добиться.
- Выберем проект как Standard EXE.
- Добавим на форму две кнопки CommandButton. Назовем их Command1 и Command2 соответственно.
- Затем добавим приведенный ниже код.
Private Const SPI_SCREENSAVERRUNNING = 97& Private Declare Function SystemParametersInfo Lib "User32" _ Alias "SystemParametersInfoA" _ (ByVal uAction As Long, _ ByVal uParam As Long, _ lpvParam As Any, _ ByVal fuWinIni As Long) As Long Private Sub Form_Load() Command1.Caption = "Отключить комбинации !" Command2.Caption = "Включить комбинации !" End Sub Private Sub Form_Unload(Cancel As Integer) 'Восстановить возможность использ. комбинаций CTRL+ALT+DEL и ALT+TAB Command2_Click End Sub Private Sub Command1_Click() Dim lngRet As Long Dim blnOld As Boolean lngRet = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, _ blnOld, _ 0&) End Sub Private Sub Command2_Click() Dim lngRet As Long Dim blnOld As Boolean lngRet = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, _ blnOld, _ 0&) End Sub
Весь секрет работы программы в использовании Win32 API функции SystemParametersInfo. Меняя второй параметр этой функции в True или в False можно добиться нужного результата. Т.е. True - соответствует ОТКЛЮЧИТЬ, а False - ВКЛЮЧИТЬ возможность использования комбинаций CTRL+ALT+DEL и ALT+TAB. В нашем примере нажимая кнопки "Отключить !" и "Включить !" можно блокировать и разблокировать использование комбинаций CTRL+ALT+DEL и ALT+TAB.
Оставить комментарий
Комментарии
1.
6 июля 2004, 22:13:00
А как насчёт Windows NT, 200, XP? Пробовал с ними - ничего не получается. Помогите, если можете!