Sometimes it is necessary for a
program to prevent the use of the
CTRL+ALT+DEL key combination to bring up
the Close Program task list to end
a task or shut down Windows 95 and to
prevent the use of the ALT+TAB key
combination to switch tasks. The
following technique uses the
SystemParametersInfo API to trick Windows
95 into thinking that a screen
saver is running. As a side effect,
CTRL+ALT+DEL and ALT+TAB are disabled.
The Win32 SDK states:
"SPI_SCREENSAVERRUNNING
Windows 95: Used internally; applications
should
not use this flag. Windows NT: Not
supported."
Note that disabling CTRL+ALT+DEL
is not recommended because the Close
Program dialog box was created to enable
users to terminate misbehaving
applications. If a program
"hangs" while CTRL+ALT+DEL is
disabled, it may
not be possible to terminate it by any
method other than rebooting the
machine, which could result in the loss
of data.
You will need two command buttons
for this program.
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 = "Disabled"
Command2.Caption = "Enabled"
End Sub
Private Sub Form_Unload(Cancel As
Integer)
'Re-enable CTRL+ALT+DEL and ALT+TAB
before the program terminates.
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
Press the F5 key to run the
program, and click the
"Disabled"CommandButton.
CTRL+ALT+DEL and ALT+TAB and CTRL-ESC are
disabled. Click the "Enabled"
CommandButton to enable CTRL+ALT+DEL and
ALT+TAB and CTRL-ESC again.
|