使用Java将模拟Windows键盘事件发送到使用SDL的C程序

use*_*066 5 java keyboard sdl

我有一个C程序,可以从键盘上获取事件.但是,我想使用Java向它发送模拟键盘事件.我尝试了两种方法:

  1. 使用Robot类
  2. 在win32.dll(native)中调用keybd_event函数.

上述方法都会执行诸如将密钥发送到文本编辑器等操作,但另一个程序(准确地说是GIMX)将无法识别事件.知道为什么会这样,以及我可以做些什么来让Java与之通信?

Ben*_*Ben 1

请参阅此处的相关讨论:

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

本质上,您似乎需要发送低级SendInput事件,即扫描代码才能使用 DirectInput。要使用扫描码,请传入KEYEVENTF_SCANCODE您的KBDINPUT结构并将扫描码传入wScan.