05/06/10 22:58
blasters
Ciao a tutti,
premetto che vorrei usare questo controllo per riuscire a intercettare 2 tasti ( che avvengono in un periodo di tempo limitato) sulla mia tastiera.
Ho provato sia con GetAsyncKeyState ma funzionando con un timer non mi va bene, e ho anche provato con gli hotKey ma mi blocca il programma.
Vorrei che questo tasto oltre a funzionare normalmente devo poter riuscirlo a registrarlo in una richtextbox.
Io ho utilizzato questo codice:
In questo esempio ho inserito solo il tasto "a" da intercettare, perchè una volta capito come fare con il primo l'altro sarà uguale.
ho inserito SendKeys.Send("a" perchè una volta intercettato vorrei che lo scrivesse (su un mio programma aperto, tipo il blocco note) come se niente fosse successo. Invece se non lo metto il pulsante viene intercettato dal programma ma non scrive sul blocco note.
Fin qui tutto funziona bene sul mio pc, ma appena eseguo il programma su un altro pc tutto si blocca (Sui 2 pc ho Win7) .
Ho letto che è possibile utilizzare un controllo chiamato keybd_event ma prima di iniziarlo a studiare vorrei sapere se qualcuno conosce un rimedio agli hotkey.
Grazie, e spero di essere stato abbastanza chiaro
premetto che vorrei usare questo controllo per riuscire a intercettare 2 tasti ( che avvengono in un periodo di tempo limitato) sulla mia tastiera.
Ho provato sia con GetAsyncKeyState ma funzionando con un timer non mi va bene, e ho anche provato con gli hotKey ma mi blocca il programma.
Vorrei che questo tasto oltre a funzionare normalmente devo poter riuscirlo a registrarlo in una richtextbox.
Io ho utilizzato questo codice:
Public Enum HotKeyModifiers As Integer MOD_ALT = &H1 MOD_CONTROL = &H2 MOD_SHIFT = &H4 MOD_WIN = &H8 End Enum Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) MyBase.WndProc(m) If (m.Msg = WM_HOTKEY) Then Dim hotKeyId As Integer = m.WParam.ToInt32() If hotKeyId = 1025 Then RichTextBox1.Text = RichTextBox1.Text & "a" SendKeys.Send("a") End If End If End Sub End Class
In questo esempio ho inserito solo il tasto "a" da intercettare, perchè una volta capito come fare con il primo l'altro sarà uguale.
ho inserito SendKeys.Send("a" perchè una volta intercettato vorrei che lo scrivesse (su un mio programma aperto, tipo il blocco note) come se niente fosse successo. Invece se non lo metto il pulsante viene intercettato dal programma ma non scrive sul blocco note.
Fin qui tutto funziona bene sul mio pc, ma appena eseguo il programma su un altro pc tutto si blocca (Sui 2 pc ho Win7) .
Ho letto che è possibile utilizzare un controllo chiamato keybd_event ma prima di iniziarlo a studiare vorrei sapere se qualcuno conosce un rimedio agli hotkey.
Grazie, e spero di essere stato abbastanza chiaro
Ultima modifica effettuata da blasters 06/06/10 17:53
aaa