Disabilitare CRTL-ALT-DEL e CTRL-ESC e ALT-TAB
Alcune volte è necessario prevenire l'uso della combinazione di tasti CTRL+ALT+DEL, per evitare che venga chiuso il programma dalla lista dei task o prevenire l'uso di ALT+TAB per spostarsi tra i task."SPI_SCREENSAVERRUNNING Windows 95: Usato internamente; le applicazioni non dovrebbero utilizzare questo flag. Windows NT: Non supportato."
Nota: non è consigliato disabilitare CTRL+ALT+DEL, perchè la finestra di Chiusura dei Programmi è stata creata per abilitare gli utenti a chiudere le applicazioni che non si comportano in modo corretto (blocco del programma). Se un programma si "blocca" mentre CTRL+ALT+DEL è disabilitato, non si ha più la possibilità di chiuderlo se non resettando la macchina, cosa che potrebbe causare perdita di dati.
Inserire in un modulo BAS il seguente codice:
Option Explicit
Public 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 Const SPI_SCREENSAVERRUNNING = 97&
Public Sub VisioneTask(disabilita As Boolean)
'Se disabilita=True, viene disabilitato CRTL-ALT-DEL
'e CTRL-ESC e ALT-TAB
'Se disabilita=False, CRTL-ALT-DEL e CTRL-ESC e ALT-TAB
'vengono riattivati.
Dim lngRet As Long
Dim blnOld As Boolean
lngRet = SystemParametersInfo(SPI_SCREENSAVERRUNNING, disabilita, blnOld, 0&)
End Sub
Nel Form inserire due CommandButton e l'esempio seguente:
Option Explicit
Private Sub Form_Load()
Command1.Caption = "Disabilita"
Command2.Caption = "Abilita"
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Abilita CTRL+ALT+DEL and ALT+TAB prima di chiudere il
'programma
VisioneTask False
End Sub
Private Sub Command1_Click()
VisioneTask True
End Sub
Private Sub Command2_Click()
VisioneTask False
End Sub
Avviare il programma (F5) e vedere i risultati.
Testato su: Windows 98, Windows Me