使用 slimdx 很容易。只需注册设备和事件:
SharpDX.RawInput.Device.RegisterDevice(UsagePage.Generic, UsageId.GenericKeyboard, SharpDX.RawInput.DeviceFlags.None);
SharpDX.RawInput.Device.KeyboardInput += new System.EventHandler<KeyboardInputEventArgs>(Device_KeyboardInput);
但这不适用于 SharpDX。当我使用建议的渲染循环时,不会调用 Device_KeyboardInput:
RenderLoop.Run(renderForm, () =>
{
}
当我将 Application.DoEvents() 添加到循环中时,它以某种方式工作(鼠标工作,但键盘不是真的)。当我正确解释此slimdx 教程时,不应使用 DoEvents() 。sharpdx RawInput 仅适用于普通窗口,就像在sharpdx rawinput 示例中使用的一样。
如何将 RawInput 与带有 RenderLoop 的 SharpDX 一起使用?