Блокировка CTRL+ALT+DEL и ALT+TAB в Windows 95/98 (Visual Basic 6)
По материалам MSDN Library - January 2000.
Иногда возникает необходимость в Visual Basic приложении отключить на
время для пользователя возможность использования комбинаций CTRL+ALT+DEL и
ALT+TAB. Ниже на примере показано как можно этого добиться.
1. Выберем проект как Standard EXE.
2. Добавим на форму две кнопки CommandButton. Назовем их Command1 и Command2 соответственно.
3. Затем добавим приведенный ниже код.
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.
|