2013-05-12 9 views
5

Próbuję sterować grami i robić bezpłatne śledzenie za pomocą zewnętrznego urządzenia IMU, symulując wprowadzanie danych z klawiatury, takich jak strzałki w lewo i w prawo.Symulowanie wprowadzania danych z klawiatury na poziomie systemu w C++

Z powodzeniem wykonałem wywołanie funkcji SendInput() w C++, aby symulować naciśnięcie lewej i prawej strzałki. Jednak w rzeczywistości nie działa on w grze (nawet w przypadku małej gry flashowej).

Szukałem na MSDN i odkryłem, że SendInput() działa tylko w aplikacjach o tym samym poziomie integralności. Czy istnieje sposób na wykonanie tej symulacji wejścia klawiatury na poziomie systemu, aby ominąć ten problem z integralnością?

Dziękujemy ~

+0

To zawsze działało dla mnie, ale możesz potrzebować sterownika klawiatury lub czegoś takiego. – chris

+0

Czy możesz mi powiedzieć, jakiego rodzaju aplikacji używasz SendInput() dla? – Tianyu

+0

Jeśli dobrze rozumiem, masz dwie aplikacje: 1, która odbiera dane śledzenia IMU i przekazuje je jako zdarzenia na klawiaturze, i 1, która otrzymuje dane z klawiatury i tłumaczy je jako polecenia w grze flash. Czy próbowałeś ręcznie wysyłać zdarzenia klawiatury, WM_KEYDOWN, WM_KEYUP, używając funkcji SendMessage. –

Odpowiedz

1

Nie jest to bezpośrednia odpowiedź na Twoje pytanie, ale alternatywna sugestia.

Saitek (producent szerokiej gamy urządzeń do gier) zawsze korzysta z wirtualnych sterowników klawiatury/myszy, aby wykonać to samo zadanie. Sugerowałbym, żebyś zrobił to samo. LUB możesz sprawić, że twoje urządzenie będzie zgodne z HID na poziomie sprzętowym, więc może emulować klawiaturę/myszkę/joystick bez żadnych sterowników.

+0

Myślę, że masz rację, jeśli chodzi o tworzenie urządzenia zgodnego z HID na poziomie sprzętu. Również wirtualny sterownik jest również opcją. Dzięki – Tianyu

Powiązane problemy