Używam niskiego poziomu haka klawiatury w systemie Windows. Działa jak czar, mimo że obecnie nie jestem w stanie stwierdzić, czy klawisz został pierwotnie wciśnięty, czy też został naciśnięty ponownie. documentation (+ here) mówi, że bit 7 przechowuje stan przejścia. Ale wydaje się, że tak jest tylko wtedy, gdy klucz zostanie wydany. Bit 7 niestety nie jest ustawiony, kiedy po raz pierwszy naciskam klawisz.Używanie KBDLLHOOKSTRUCT do określenia pierwszego naciśnięcia klawisza
Czy istnieje sposób sprawdzenia, czy klawisz jest naciśnięty na początku?
Jednym z wielu problemów z hakami klawiatury, stanem klawiatury jest właściwość procesu. Więc to, co dostajesz w całości, zależy od tego, co się stanie z właścicielem okna na pierwszym planie i czy * it * zobaczył klucz wcześniej. –
Wiem, ale nie obchodzi mnie w tym przypadku. Spodziewam się, że użytkownik skupi się tylko na moim procesie, ale jestem świadomy ryzyka, dzięki! –
@Hans Stan klawiatury jest kontrolowany dla jednego wątku (lub grupy wątków, jeśli kilka wątków jest powiązanych w wyniku wywołania 'AttachThreadInput'). Zastąpienie wszystkich wystąpień * procesu * * wątkiem lub grupą wątków * naprawia twój komentarz. – IInspectable