|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 239
|
[C#/VB6/VB.NET] Intercettare un tasto
come potrei fare un programmino in vb6/vb.net/C# che combina la pressione di un tasto della tastiera (ad esempio F12) con la pressione di un'altro tasto? ad es. premi F12 e ti da l'invio al posto di F12. Ho problemi con l'intercettazione della tastiera. Grazie infinite
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
In VB6 puoi semplicemente, nell' evento KeyPress dei controlli Text o altro, scambiare i valori che ti servono:
Codice:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc("f") Then
KeyAscii = Asc("g")
End If
End Sub
Per i tasti non ascii devi usare le costanti tipo vbKeyF12 o vbCrLf, etc etc ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 239
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 239
|
niente?
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Forse questo, ma non ne sono sicuro, non l'ho provato..
http://www.allapi.net/apilist/keyb_event.shtml |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Modena/Dintorni
Messaggi: 3814
|
scusate raga
spero di essere utile lol però in c++ usando le api per intercettare un tasto vado nel case WM_CHAR: e intercetto il tasto ke è contenuto dentro wParam spero ke assomigli al c# scusate se ho detto uan boiata
__________________
Compravendite con mezzo forum, oltre 250 feedback tutti positivi sulla baia. > Dr. Jekyll & Mr. Hyde < |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Quote:
@1mp3r4t0r: qual'è l'API da usare? |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
UP!
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2001
Città: Roma Caput Mundi Moto: Ducati SS 750 i.e. Squadra: A.S. Roma 1927 Macchina: 147 M-Jet 140 equini
Messaggi: 698
|
devi gestire un hook sulla tastiera usando queste api:
SetWindowsHookEx CallNextHookEx UnhookWindowsHookEx fatti una classe in cui dichiari quelle api e poi una sub per far partire il listen sulla tastiera: Public Sub KeyBoardListen() Dim hp1 As HookProc= AddressOf MyLLKbdProcEnd Sub HookProc è la delegate che dovrai dichiarare così Delegate Function HookProc(ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr nota che la SetWindowsHookEx vuole come parametro hp1 che hai dichiarato di tipo hookproc... questa invece è la procedura che viene chiamata da KeyBoardListen. ad ogni pressione di un tasto scatena l'evento keypressed che dovrai dichiarare sopra e che potrai intercettare da fuori, e subito dopo passa la palla al prossimo hook. Public Function MyLLKbdProc(ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr RaiseEvent KeyPressed(Marshal.ReadInt32(lParam))End Function ricordati alla fine di stoppare il giro con la UnhookWindowsHookEx: UnhookWindowsHookEx(KeyBoardHook) buon divertimento e non fare porcate
__________________
...la voglia di guardarti e dirti sulle labbra...quanto ti ho aspettata...è il senso della vita... ...quando tutto questo sarà io ci sarò...anche se tutto questo mai sarà ci sarò... <about me> <my photo gallery> |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
E' molto bello, ma non ci ho capito molto, prima di tutto, cos'è una delegate?
E poi non ho capito molto queste righe: Dim hp1 As HookProc= AddressOf MyLLKbdProc KeyBoardHook = SetWindowsHookEx(WH_KEYBOARD_LL, hp1, Marshal.GetHINSTANCE(GetType(Hook).Module), 0) GC.KeepAlive(hp1) RaiseEvent KeyPressed(Marshal.ReadInt32(lParam)) Mi puoi spiegare bene cosa fanno le parti che ho messo in grassetto? E un'ultima cosa, KeyBoardHook dove va dichiarato? E di che tipo è? |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
UP!
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
RIUPPO!
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Modena/Dintorni
Messaggi: 3814
|
scusa il ritardo
cmq facendo #include <windows.h> riesci gia a intercettare il tasto
__________________
Compravendite con mezzo forum, oltre 250 feedback tutti positivi sulla baia. > Dr. Jekyll & Mr. Hyde < |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:49.



















