У меня есть DLL, в которую я вставляю DX-игры. В DLL я отключу XInput, исходный ввод, а также подкласс WndProc, чтобы отфильтровать кучу входных сообщений, таких как WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_INPUT и т. Д. Отключить XInput с помощью XInputEnable (FALSE) и зарегистрировать необработанные устройства с флагом RIDEV_REMOVE.Ввод в игру DX и бездействовать в игре
Хотя он отлично подходит для некоторых игр, он не работает для всех. В некоторых играх все еще есть вход для перемещения мыши/наведения, и я могу видеть состояние зависания для некоторого пользовательского интерфейса, когда я перехожу.
Мой вопрос - что я пропустил? Могла ли игра захватывать ввод других способов?
спасибо.
Похоже, что в игре можно создать еще один поток и опрос для ввода. Есть ли способ обойти это? Помимо SuspendThread :-) –
Не нужно было создавать другой поток для использования 'GetCursorPos'. Его можно было бы назвать однажды фреймом в том же потоке, который использовался для рендеринга. –
Итак, это происходит в игровом цикле. Знаете ли вы какие-либо способы отключить это? Для меня это невозможно. –