Sto utilizzando un gancio per tastiera di basso livello su Windows. Funziona come un vero fascino, nonostante il fatto che attualmente non sia in grado di dire se il tasto è stato inizialmente premuto o premuto di nuovo. Lo documentation (+ here) dice che il bit 7 contiene lo stato di transizione. Ma questo sembra essere vero solo quando viene rilasciata la chiave. Il bit 7 non è impostato con esitazione quando preme il tasto per la prima volta.Utilizzo di KBDLLHOOKSTRUCT per determinare la prima pressione del tasto
C'è un modo per dire se il tasto viene premuto inizialmente?
Uno dei molti problemi con gli hook per tastiera, lo stato della tastiera è una proprietà per processo. Quindi, ciò che si ottiene interamente dipende da quale processo avviene per possedere la finestra in primo piano e se * ha * visto la chiave prima. –
Lo so, ma non mi interessa in questo caso. Mi aspetto che l'utente focalizzi solo il mio processo, ma sono consapevole del rischio, grazie! –
@Hans Lo stato della tastiera è controllato per thread (o gruppo di thread, se più thread sono legati insieme come risultato della chiamata di 'AttachThreadInput'). Sostituire tutte le occorrenze di * process * con * thread o thread group * corregge il tuo commento. – IInspectable