Mal ein paar Ideen
Hallo zusammen,
was ich hier zum Thema softkb.dll lese und wie die eingebunden wird, klingt ja alles recht abenteuerlich ;-)
Ich hätte da mal ein paar Ideen das Ganze vielleicht einfacher hinzubekommen...allerdings gibt es einen Haken dabei. Ich entwickle zwar seit einigen Jahren Software für Win CE und PocketPC/Windows Mobile, aber eben nur dort
Bis vor einer Weile, auf CE.Net 4.2, nur in C++ und seit dem für Windows Mobile/PPC2003 in C#, zu CE >5.0 habe ich zwar keine First Hand Erfahrungen, aber einige Dinge können den Spezialisten hier möglicherweise weiterhelfen, auch wenn es in Nuancen anders ist als auf den Systemen, die ich kenne.
Also auf geht's:
- Es gibt bei CE/WM eine Möglichkeit, dass sich eine beliebige Anwendung (auch C#/.Net) einen systemweiten Hook für Soft- und Hardkeys zu registrieren. Damit bekommt diese Anwendung jede Taste die gedrückt wurde bevor die eigentlich aktive Anwendung sie bekommt und die Taste ggf. auch unterdrücken. Das sollte eigentlich auch für die Keycodes der FB gehen (was ich aber Mangels FB an meinen PocketPC nicht probieren kann
Wenn so eine Taste gedrückt wurde, kann diese Aktion gelöscht werden und das, was laut Softkeyboard gedrückt werden sollte, an die Anwendung geschickt werden (Stichwort SendWindowsMessage und WM_KEYDOWN bzw. WM_KEYUP) Damit ist es möglich, ein nicht aktives Fenster im Vordergrund zu haben (das Keyboard auf STAYONTOP gesetzt) und an das eigentlich aktive Fenster (z.B. IE mit Maxdome) normale Tastatureingaben zu senden.
- Alternativ wäre es auch möglich ganze Worte an das aktive Programm zu senden indem die Tastatur den Inhalt zwischenspeichert und erst auf ein OK hin das schickt (Stichwort WM_SETTEXT für das Control, das den Fokus hat). Dann könnte man so Sachen wie T-9 oder das SMS Gehacke (3x2 drücken=c) implementieren.
- Die beiden Methoden können auch kombiniert werden, je nachdem welches Programm oder sogar welches Control darin aktiv ist
- Da es sich dabei dann um eine ganz normale Anwendung handelt, genügt es auch das einfach in den Autostart des SOT zu packen (gibts so was?), kein Registry Gefummel, nk.bin hacken etc.
Hmm, wenn ich das so lese, bekomme ich fast Lust mein VS auszugraben und es selber mal zu probieren...wenn es nur nicht so mühsam wäre etwas zu entwickeln, wenn das Zielsystem nicht in einem EMU läuft...
Vielleicht hilft es ja weiter, viele Grüße
Beacon