WM_INPUT не получен, когда он не в фокусе

Я использую Windows Forms на C# с SharpDX RawInput.

Все работает нормально, но когда окно теряет фокус, сообщения прекращаются.

Я зарегистрировал свой собственный фильтр сообщений с помощью Application.AddMessageFilter, и сообщения даже не попадают туда после потери фокуса.

Разве сообщения WM_INPUT не должны были быть независимыми от фокуса? Как мне заставить это работать, когда окно находится в фоновом режиме?


person Stefan    schedule 10.07.2016    source источник


Ответы (1)


Хитрость заключается в том, чтобы установить флаг RIDEV_INPUTSINK. В SharpDX это известно как DeviceFlags.InputSink.

person Stefan    schedule 10.07.2016
comment
У меня похожая проблема - я знаю, что этот флаг правильный для использования, но когда я устанавливаю его в демонстрационное приложение SharpDX, я больше не получаю никаких данных, даже когда приложение сфокусировано. - person Clive Galway; 14.04.2017