2012-03-28 10 views
5

Mam program w języku C, który ładuje zdarzenia z klawiatury. Jednak chcę używać Javy do wysyłania symulowanych zdarzeń na klawiaturze. Próbowałem dwóch podejść:Używanie języka Java do wysyłania symulowanych zdarzeń klawiatury systemu Windows do programu w języku C używającego SDL

  1. użyć klasy Robot
  2. Połącz się z keybd_event funkcja w win32.dll (native).

Oba powyższe podejścia będą robić takie rzeczy, jak wysyłanie kluczy do edytora tekstu itp., Ale drugi program (dokładnie GIMX) nie rozpozna zdarzeń. Jakiś pomysł, dlaczego tak się stanie i co mogę zrobić, aby Java mogła się z nim komunikować?

+0

Choć nie jestem zaznajomiony z problemem, dokumentacja dla keybd_event mówi używać SendInput zamiast: http://msdn.microsoft.com/en-us/library/windows/ desktop/ms646304 (v = vs.85) .aspx –

+0

Czy to działa z Notatnikiem? To znaczy. jest problem z twoim końcem, czy z końcem GIMX? – Ben

Odpowiedz

1

Patrz tutaj dla powiązanego dyskusji:

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/29cf2de9-412e-44dd-9050-174089d8e2a2/

Zasadniczo, wygląda na to trzeba wysłać niskopoziomowych SendInput wydarzenia, tj kody skanowania do pracy z DirectInput. Aby użyć kodów skanowania, należy przekazać KEYEVENTF_SCANCODE w strukturze KBDINPUT i przekazać kod skanowania w postaci wScan.

Powiązane problemy