Wstęp
Programowanie
w języku Delphi umożliwia nie tylko tworzenie programów, ale także
sterowanie podzespołami komputera takimi, jaki monitor, napęd
CD\DVD, czy porty szeregowe i równoległe. Zwiększa to znacznie
możliwości dla naszych projektów, dzięki czemu możemy z nimi
wyjść na zewnątrz komputera.
Nieodzownym
elementem większości programów jest interfejs i sterowanie. To
dzięki nim użytkownik może realizować swoje zamierzenia,
wykorzystując do tego program. Przeważnie odbywa się to za pomocą
klikania myszką w wirtualny przycisk, umieszczony na interfejsie
programu. Jest to wygodne rozwiązanie dla zwykłych (graficznych)
programów komputerowych. Co jednak zrobić w przypadku, gdybyśmy
chcieli stworzyć jakiś mobilny projekt, na przykład poruszającego
się robota? Chodzenie za nim i uważanie, aby nas nie rozjechał
podczas klikania w jego interfejs, nie wchodzi przecież w rachubę.
Musimy stworzyć sterowanie jego funkcjami na innej zasadzie.
Pierwszym,
najbardziej naturalnym rozwiązaniem tej kwestii jest klawiatura.
Jeżeli użyjemy na dodatek klawiatury bezprzewodowej, mamy w pełni
mobilną jednostkę. Nie jest to jednak takie proste. Co prawda
klawiatura posiada wystarczająco dużo klawiszy, a w połączeniu ze
skrótami klawiaturowymi (czyli naciśnięcie kilku klawiszy
jednocześnie) ma ich całą masę (kilkaset), jednak każdy z nich
ma swoje przeznaczenie. Nie możemy więc ich wykorzystać w sposób
bezpośredni.
Narzędzia
programistyczne radzą sobie jednak doskonale z tego typu problemami.
Klawiatura komunikuje się z komputerem, wysyłając doń komunikat,
który klawisz został naciśnięty. Na podstawie uzyskanych
informacji, komputer wykonuje zadanie przypisane do tego klawisza.
Jeżeli, powiedzmy, naciśniemy klawisz z literką „a” nic się
nie stanie, gdyż system z niego nie korzysta. Wystarczy jednak
uruchomić jakikolwiek edytor tekstu (chociażby WordPad), aby
przekonać się, że ten klawisz jest jednak potrzebny.
Chcąc
wykorzystać poszczególne klawisze do swoich celów lub zmienić ich
przeznaczenie, musimy przechwycić komunikaty, które są wysyłane
do komputera. Po ich przechwyceniu, wydajemy komputerowi własne
komendy. Nic więc nie stoi na przeszkodzie, aby komputer po
naciśnięciu klawisza „a” wykonał jakąś czynność, odtworzył
muzykę lub na przykład, wyłączył się. Powyższy zabieg nazywamy
przechwytem klawiatury lub, częściej, z anglojęzycznego oryginału,
hookiem: zakładaniem hooka na klawiaturę.
Hook
Przy
pomocy hooka możemy przejąć kontrolę nad każdym klawiszem
klawiatury oraz utworzyć skróty klawiaturowe z wykorzystaniem
klawiszy rozszerzonych, czyli Ctrl, Alt, Shift, Win, a nawet ich
kombinacje, jak ctrl+alt+klawisz. Czym zatem jest ów hook? Jest to
procedura, jedna z wielu, która odbiera od klawiatury informacje o
tym, jaki klawisz lub klawisze zostały naciśnięte i na tej
podstawie wykonuje działanie, które dla tego przypadku wcześniej
zdefiniowaliśmy.
Hook
to nie jest tylko jedna procedura. Jest to raczej ogólna nazwa
procesu przechwytywania klawiatury, a konkretnych procedur, które to
realizują, jest kilka. Zazwyczaj uzupełniają się one wzajemnie.
Przedstawimy trzy oddzielne procedury, które przechwytują
klawiaturę. Oto one:
- Key Press,
- Short Cut,
- Hot Key.
Każda
z tych procedur króluje w pewnym, swoim tylko zakresie, lecz
połączone razem, doskonale się uzupełniają. Poniższa tabela
przedstawia możliwości poszczególnych procedur:
Analizując
tabelę, widzimy jasno, jak wielkie możliwości sterowania kryje
klawiatura. Każda z tych komórek to potencjalnie kolejny sposób
sterowania jedną z opcji naszego programu czy robota. Jak widzimy,
jest ich bardzo wiele.
Dobrą
właściwością hooka jest to, iż nie przejmuje automatycznie
kontroli nad całą klawiaturą, lecz nad każdym z klawiszy z
osobna. Możemy więc przechwycić tylko te klawisze, które chcemy.
Ten wybiórczy sposób traktowania klawiatury przydaje się, gdy poza
naszym zdefiniowanym działaniem, chcemy korzystać z dotychczasowych
możliwości klawiszy, czyli na przykład używać klawisza Enter,
Backpace czy chociażby klawiszy liter. Opiszemy teraz te trzy
sposoby przechwytywania klawiatury w sposób szczegółowy.
W dalszych częściach zapoznamy się dokładnie z poszczególnymi metodami.
Strona 1/5 Dalej >
Artykuł pochodzi z mojej książki pt. "Delphi w przykładach dla początkujących". Zapraszam na Stronę książki.
Ciekawe artykuły:
- Zabawy matematyczne w Delphi
- Niezwykłe opowieści o niezwykłych ludziach
- Przeżycia na pograniczu śmierci
- Zabawy rozwijające pamięć w Delphi
- AntyNoble - śmieszne badania naukowe
Zapoznaj się z innymi artykułami. Przejdź do zakładki Spis artykułów.
Brak komentarzy:
Prześlij komentarz