AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tastatur Hardware Scan Code

Ein Thema von johndoe049 · begonnen am 29. Jun 2020 · letzter Beitrag vom 1. Jul 2020
Antwort Antwort
johndoe049

Registriert seit: 22. Okt 2006
167 Beiträge
 
#1

Tastatur Hardware Scan Code

  Alt 29. Jun 2020, 23:42
Hallo,
mit VK_RETURN erhalte ich einen identischen Wert für die Return Taste im Textbereich und für die Enter Taste am Ziffernblock.

Weiss jemand, wie ich an den Hardware Scan Code rankomme? Ich kenne zwei Anwendungen, die zwar nicht mit Delphi oder Lazarus erstellt wurden, wo diese Unterscheidung funktioniert.

Da ich 64bit Compiliere, habe ich selbst noch nichts sinnvolles gefunden.

Ich habe zwar das hier gefunden, das lässt sich jedoch nicht mit 64bit Compilieren.

https://forum.lazarus.freepascal.org...?topic=40752.0

Danke im voraus.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#2

AW: Tastatur Hardware Scan Code

  Alt 30. Jun 2020, 00:11
In den Tastatur-ScanCodes lässt es sich noch unterscheiden.
Beim bereits übersetzen VirtualKeyCode gibt es da keinen Unterschied mehr.
Du könntest WM_KEYUP/DOWN überschreiben ... da ist Beides drin.

Und wie man das ganz einfach rausbekommt?
Einfach ausprobieren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
677 Beiträge
 
Delphi 12 Athens
 
#3

AW: Tastatur Hardware Scan Code

  Alt 30. Jun 2020, 00:11
Schau mal hier oder hier
Roland
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
167 Beiträge
 
#4

AW: Tastatur Hardware Scan Code

  Alt 30. Jun 2020, 11:54
Die beiden Beispiele gehen so nicht.
Das eine ist aus 2007 und das andere ist für C++ zugeschnitten.

Da ich direkt auf der Form mit Key Preview arbeite, wird WM_KEYDOWN wahrscheinlich zu früh abgefangen. Im Delphi Beispiel kommt nichts an.

WM_KEYUP/DOWN überschreiben entspricht nicht der Entwicklerpolicy von uns.

Gibt es eine andere Möglichkeit auf den Tastaturpuffer zuzugreifen? Ggf. über einen eigenen Thread oder Timer?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#5

AW: Tastatur Hardware Scan Code

  Alt 30. Jun 2020, 12:45
GetAsyncKeyState
MSDN-Library durchsuchenGetKeyState liefert den Status zu Beginn des Verarbeitung der aktuellen Message.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
167 Beiträge
 
#6

AW: Tastatur Hardware Scan Code

  Alt 30. Jun 2020, 13:28
GetKeyState(VirtualKey) zeigt für Return und Enter wieder das gleiche an.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#7

AW: Tastatur Hardware Scan Code

  Alt 30. Jun 2020, 13:49
Ach mist, stimmt ja, dort sind ja wieder nur die VirtuaKeyCodes drin.
MSDN-Library durchsuchenGetKeyState und MSDN-Library durchsuchenGetKeyboardState sind aber die einzigen Funktionen, wo man auch nachträglich nochmal diesen Teile der Message kommt, wo in der VCL vorher der Parameter nicht weitergereicht wurde, jedenfalls so weit ich weiß.

Mouse&Keyboard-Messages kommen über PostMessage rein, dann könntest du auch noch Application.OnMessage TApplicationEvents.OnMessage versuchen. (SendMessage kommt dort nicht vorbei und WM_TIMER wird erst im GetMessage generiert)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
167 Beiträge
 
#8

AW: Tastatur Hardware Scan Code

  Alt 1. Jul 2020, 11:21
Hi,

da ich für das Projekt Lazarus benötige, sind noch einige Lazarus spezifische Besonderheiten zu berücksichtigen.

Suchbegriff für das Lazarus Forum: "Can not get the Key Scan Code - only the virtual key code". Funktionierendes Beispiel ist auf Seite 2

Um keine toten links zu erzeugen, bitte direkt im englischen Lazarus Forum nach dem Begriff suchen. Ist in der Rubrik LCL vorhanden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz