Используйте Java для отправки имитированных событий клавиатуры Windows в программу на языке C, использующую SDL - PullRequest
5 голосов
/ 28 марта 2012

У меня есть программа на C, которая отлично воспринимает события с клавиатуры. Однако я хочу использовать Java для отправки имитированных событий клавиатуры. Я пробовал два подхода:

  1. Используйте класс Робот
  2. Вызов функции keybd_event в win32.dll (собственный).

Оба вышеуказанных подхода будут выполнять такие действия, как отправка ключей в текстовый редактор и т. Д., Но другая программа (точнее, GIMX) не распознает события. Любая идея, почему это было бы, и что я мог сделать, чтобы заставить Java общаться с ним?

1 Ответ

1 голос
/ 13 мая 2013

См. Здесь для соответствующего обсуждения:

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

По сути, похоже, что вам нужно отправлять низкоуровневые события SendInput, то есть сканировать коды для работы с DirectInput.Чтобы использовать коды сканирования, передайте KEYEVENTF_SCANCODE в вашей структуре KBDINPUT и передайте код сканирования в wScan.

...