Это легко с 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() в цикл. DoEvents() не следует использовать, когда я правильно интерпретирую этот руководство по slimdx. Sharpdx RawInput работает только с обычным окном, как это используется в пример необработанного ввода Sharpdx.
Как я могу использовать RawInput с SharpDX с RenderLoop?