Ich habe einen Barcodescanner, den ich in einem Programm parallel zur Tastatur nutzen möchte.
Idee war einfach:
1) Scanner schickt Startzeichen --> Unterdrücke diese Eingabe und setze Status auf "Lesen"
2) Tastaturevent --> wenn Status="Lesen" dann speichere Zeichen und unterdrücke Eingabe
3) Scanner schickt Startzeichen --> Unterdrücke diese Eingabe, setze Status auf "Normal" und aktiviere "OnBarCode"
Das ganze habe ich bisher über eine neue TForm-Klasse gemacht, die mit KeyPreview=true und den OnKeyxxx Methoden arbeitet und dabei immer Key:=0 setzt (wenn Status usw...)
Dummerweise kann ich darüber die Eingabetaste und auch Buchstaben, die als Hotkeys für Buttons fungieren nicht unterdrücken.
Dann habe ich gedacht, ich könnte das als Tastaturhook machen.
Ähnlich zu
www.entwickler-ecke....Problem_27431,0.html
Testweise habe ich folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| SetWindowsHookEx(WH_KEYBOARD, KBProc, 0, GetCurrentThreadId()); function KBProc(nCode: Integer;wParam: wParam;lParam: lParam): LRESULT;stdcall; begin frmSettings.mCodes.Lines.Add(inttostr(wParam) + ' ' + inttohex(lParam, 8)); Result:=0; end; |
Der sollte mir damit also alles abfangen und die Taste dann unterdrücken, da es nicht weitergereicht wird. Macht er aber nicht. Die Taste geht immer noch bis zum Programm durch.
Wie kann ich also alle Tasten unterdrücken?
Edit: Hat sich geklärt: Ein Result:=1 löst das Problem