Hook na klawiaturę

0

Jestem w trakcie pisania projektu w C++ z użyciem biblioteki Qt pod Windowsa. Program przez cały czas ma działać w tle innego programu (czyli jego okno nie będzie aktywne), a potrzebuję obsługiwać pewne skróty klawiszowe. Klasa QShortcut niestety działa tylko wtedy, gdy okno mojego programu jest aktywne. Wiem, że mogę przechwytywać znaki z klawiatury poprzez założenie 'haka' na klawiaturę. Szukałem już w googlach na ten temat i jest tam dosyć sporo, lecz większość dotyczy hooka w WinApi (z użyciem funkcji SetWindowsHookEx). Nie wiem jak to zrobić z użyciem Qt. Ma ktoś jakieś pomysły lub doświadczenia przy czymś takim?

0

hooka zakłada się dokładnie tak jak znalazłeś, jednak z qt będziesz musiał to ręcznie połączyć. jednak w tym wypadku bardziej polecam metodę dll injection, wtedy będziesz mógł korzystać z danej aplikacji prawie tak jak ze swojej, jako że będziesz dzielił z nią przestrzeń adresową. w tym wątku masz więcej info: http://4programmers.net/Forum/C_i_C++/173556-dll_injected_czas_przeszly_ale_co_dalej również tutaj http://nfsec.pl/hakin9/dllinjection.pdf jest dużo wyjaśnione

0

Heh, w sumie racja. Najlepsze jest to, że czytałem tamten temat i nie wpadło mi do głowy takie rozwiązanie :S

Tylko właściwie jak już uda mi się 'podpiąć' do programu, który będzie na wierzchu, to muszę jeszcze coś zrobić, żeby Qt wykrywało naciśnięte klawisze? Bo w sumie nie wiem jak funkcja QShortcut będzie na takie coś reagowała

0

Dobra, rozwiązałem problem. Znalazłem gotowego dll-a na necie oraz opis co i jak. Jeśli ktoś będzie w przyszłości zainteresowany - http://www.qtforum.org/article/17914/catching-all-keyboard-presses.html

Wszystko świetnie opisane i naprawdę dobry kod. Polecam :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1