Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
In alcuni programmi che svolgono operazioni critiche in cui è fondamentale non interrompere l'esecuzione, può essere necessario disabilitare la combinazione di tasti CTRL+ALT+CANC e riabilitarla in seguito.
Quest'operazione è semplicissima in Visual Basic e viene effettuata mediante l'utilizzo di una funzione API già vista in un altro HowTo. La funzione API da sfruttare è la SystemParametersInfo che comanda alcune funzioni interne del sistema. Passiamo subito allo sviluppo del progetto, e inseriamo sopra un form una CheckBoxdi nome ControllaCheck con il testo "Disabilita la finestra di CTRL+ALT+CANC". Il click e l'attivazione/disattivazione della CheckBox determina la possibilità di sfruttare la combinazione di tasti per terminare un programma. Il codice di questo progetto si compone di pochissime righe:
Abbiamo infatti dichiarato solamente una funzione ed una costante API e richiamata la funzione all'interno dell'eventoClick sulla CheckBox ControllaCheck. Alla riga 3 abbiamo la dichiarazione della funzione SystemParametersInfo
che permette di modificare alcuni valori di sistema. Alla riga 4 abbiamo una costante API di nome SPIF_SENDCHANGE che verrà utilizzata dalla funzione SystemParametersInfo per specificare il tipo di notifica dei cambiamenti. Essa, appunto, indica una modifica semplice che non va ad alterare alcun file di sistema. Nel momento in cui l'utente seleziona o deseleziona la CheckBox scatta il suo evento Click. Per cui, all'interno della routine collegata all'evento, inseriremo la chiamata alla funzione API che modifica il valore di sistema.
La funzione SystemParametersInfo richiede un primo parametro numerico
(uAction) che indica il tipo di operazione da effettuare: il valore
che controlla la combinazione di tasti CTRL+ALT+CANC è il numero
97 e non ha una costante API corrispondente. Riassumendo, alla funzione saranno passati i valori 97 (uAction), l'espressione booleana ControllaCheck = True (uParam), il valore ByVal 0& (lpvParam) poiché questo parametro non sarà necessario in quest'operazione ed infine la costante di notifica SPIF_SENDCHANGE (fuWinIni). Possiamo adesso eseguire il progetto.
Se invece la CheckBox è selezionata, ogni pressione della combinazione
dei tre tasti sarà inutile, e non sarà possibile richiamare
la finestra Termina applicazione in nessun modo.
|
Naturalmente si consiglia di non abusare di questa funzione poiché a volte la finestra Termina applicazione è l'unica soluzione per liberare il computer da un programma bloccato. È inoltre fondamentale ricordarsi di sbloccare la combinazione di tasti alla chiusura del programma. Infatti quest'operazione non sarà effettuata automaticamente all'uscita del programma che la comanda. Nota
bene! Fibia
FBI
|
Torna all'indice degli HowTo |