[B.NET] - Come disabilitare o intercettare alcuni tasti speciali (keyh...

martedì 04 settembre 2012 - 10.04
Tag Elenco Tags  VB.NET  |  .NET 1.0  |  .NET 1.1  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Windows Server 2000  |  Windows 7  |  Windows Vista  |  Windows XP  |  Visual Studio 2010

Davide1986 Profilo | Junior Member

Ciao ragazzi ho bisogno di sapere come si fa da codice a bloccare alcuni tasti speciali come il tasto WIN , ALT + F4 , ALT + ESC .
Premetto che io sto lavorando con un From in Visual Basic .NET 2010 .

Grazie in anticipo.

P.s. per ogni chiarimento sono a vostra completa disposizione.

Trovata una funzione su internet che faceva al caso mio, che sfrutta gli Hook Keyboard .

Vinsent Profilo | Senior Member

Anche se hai risolto...io faccio cosi:

Dim lista_tasti As New List(Of Keys) Private Sub carica_lista() lista_tasti.Add(Keys.LWin) 'TASTO WIN lista_tasti.Add(Keys.RWin) 'TASTO WIN lista_tasti.Add(262259) 'ALT + F4 'eccetera End Sub Protected Overrides Function ProcessCmdKey _ (ByRef msg As System.Windows.Forms.Message, _ ByVal keyData As System.Windows.Forms.Keys) As Boolean '******************************************************** 'DA COMMENTARE IN RELEASE 'questo: Console.WriteLine(keyData & " " & keyData.ToString) 'in fase di debug scrive nell'output le informazioni 'sul tasto premuto, serve per identificare il valore '"keydata" da inserire nella lista. '******************************************************** If lista_tasti.Contains(keyData) = True Then msg = Nothing End If Return MyBase.ProcessCmdKey(msg, keyData) End Function

La SUB 'carica_lista' va eseguita all' avvio del form, come vedi i singoli tasti (es. Keys.LWin) sono già presenti nel framework, mentre per le combinazioni puoi risalire al 'keyData' con le informazioni scritte dal 'Console.WriteLine'.
ciao

Davide1986 Profilo | Junior Member

Ho modificata questa libreria , fammi sapere, calcola che CTRL + ALT + CANC non funziona ma per il resto si :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5