witam wszystkich
sorry za to, że jestem początkujący, ale ciężko w sieci znaleźć odpowiedź na moje pytanie
potrzebuję funkcji która będzie pozwalała na realizację funkcji pozwalającej na wykonywanie instrukcji w związku z wciśnięciem klawisza i jego wycisnięciem:
np wciskam klawisz A:
robi się jakaś instrukcja,
a kiedy puszczam A:
robi się inna, kolejna
proszę o szybką pomoc, nie jestem programistą a potrzebuję to do małego uzupełnienia projektu.
pozdro
Nie, nie wystarczy. Musisz to odpalic w oddzielnym watku. Ewentualnie skorzystac w funkcji, ktore Ci beda zwracaly stan klawisza i w petli sprawdzac za kazdym razem, czy juz zostal puszczony (czy nie nalezy wyjsc z petli).
moge prosic o jakis przyklad? najlepiej z zaznaczeniem miejsca gdzie mozna wychwycic zbocze opadajace sygnalu z klawiatury
pozdrawiam
nodobra napisał(a)
z zaznaczeniem miejsca gdzie mozna wychwycic zbocze opadajace sygnalu z klawiatury
Bez przesady , musisz skorzystać z dodatkowych bibliotek , lub WinApi i pętli komunikatów gdzie można te powiadomienia wyłapać.
Z prostszych rzeczy istnieje fun kbhit() która sprawdza czy naciśnięto jakiś klawisz .
Pewnie taką funkcjonalność dostarczają biblioteki do tworzenia gier , nie wiem bo nie używałem .
Dużo zależy też od środowiska w którym masz zamiar stworzyć aplikację o czym nie ma słowa w twoich postach.
C++ visual studio 2005.
no to troche sie rozpisze o co mi chodzi:
mam silczek DC, którym steruję, sterowanie polega na wysłaniu instrukcji z pozycją silnika.
inkrementacja pozycji mnie nie zadowala, ponieważ w przypadku małych, czy dużych różnic pozycji występuje zjawisko "przycinania" co jest zależne od komunikacji PC -> mikroprocesor silniczka.
wymyśliłem zatem algorytm który wygląda tak, że po wciśnięciu klawisza wysyłam instrukcję zadającą położenie końcowe, natomiast zwolnienie klawisza ma powodować odczyt pozycji (w momencie puszczenia klawisza) i wpisanie tej pozycji do mikroprocesora.
jeśli chodzi o silniczek + mikro, to na to pozwala - testy działają np. przy wciśnięciu jednego, a później innego klawisza.
chciałbym, żeby to było na tym samym, tylko z wykorzystaniem ich stanów. dziękuję za dotychczasową pomoc i proszę o jeszcze,
Wystarczy sformułować odpowiednie zapytanie do google, jedne z pierwszych wyników:
http://msdn.microsoft.com/en-us/library/ms646304(v=vs.85).aspx
http://www.codeproject.com/KB/system/keyboard.aspx
Po kilku zdaniach dowiedziałem się że:
To press a key, use:
keybd_event(ai_key,0,0,0)
To release a key, use:
keybd_event(ai_key,0,2,0)
Może akurat ta funkcja nie spełni Twoich oczekiwań ale sądzę, że jak poszukasz dłużej niż ja (dwie minuty) na pewno coś znajdziesz ;)