|
Блокировка клавиш в Windows 95/98 |
|
|
|
Автор Westry
|
|
29.12.2007 г. |
Иногда возникает необходимость в 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. |