Witam!
Na początku zaznaczę, że nie znam się na programowaniu ani C++, więc z góry przepraszam za nie fachowe nazewnictwo.
Używamy w firmie skanerów kodów kreskowych Motorola Symbol MC3000. Działają one na systemie Windows CE. Klawiatura tych urządzeń posiada 2 programowalne klawisze funkcyjne. Z dokumentacji wynika, że by zaprogramować te klawisze należy wprowadzić zmiany w kodzie niewielkiego programiku który generuje pliki mapowania klawiatury. Do sprawniejszego poruszania się po opcjach programów chciałbym pod jednym ustawić klawisz TAB pod drugim SHIFT+TAB. I tu pojawia się problem. O ile z TABem poradziłem sobie bez problemu, SHIFT+TAB jest dla mnie zagadką. Zauważyłem, że kody klawiszy zdefiniowane są w pliku scancode.h i wygląda to tak (nie wklejam całego pliku lecz skróconą wersję do 3 klawiszy)
#ifndef SCANCODE_H
#define SCANCODE_H
#define SC_LSHIFT 0x2a
#define SC_TABKEY 0x0f
#define SC_SHIFTTAB 0xF /*dodane przeze mnie
#endif // SCANCODE_H
natomiast samo mapowanie ustawione jest w pliku MC3000Key28S.cpp i wygląda tak (również skrócona wersja)
#include "scancode.h"
#include "makebins.h"
char MC3000Key28ScanCodeData[COUNT_SCAN_CODES] =
{
SC_LSHIFT, // 23 Shift Key
SC_TABKEY, // 30 Red Key (zdefiniowany przeze mnie kalwisz TAB)
SC_SHIFTTAB, // 30 Green Key (niedziałający SHIFT+TAB)
};
Z racji tego, że klawiatura w takim urządzeniu nie działa tak jak normalna do zdefiniowania SHIFT+TAB należałoby (tak przypuszczam) zdefiniować sekwencję znaków, tzn najpierw SHIFT potem TAB i taką sekwencje podpiąć pod to pod SC_SHIFTTAB. I w tym miejscu prosiłbym waszą pomoc. Nie wiem jak zrobić taką sekwencję, a szczerze powiedziawszy nie jestem nawet pewny czy tak to powinno wyglądać. Będę wdzięczny za wszelką pomoc i wszelkie sugestie.
Załączam kod źródłowy do tego programiku. Znajdują się tam pliki konfiguracyjne dla 3 modeli tego urządzenia (z klawiaturą 28, 38 i 48 klawiszową). Mnie interesuje wersja dla 28 klawiszowej klawiatury czyli plik MC3000Key28S.cpp.
http://files.myopera.com/lssl/files/kbtool.zip
Dzięki!
Marek