Вопрос Клавиши работают только после Alt+Tab

Новичок
Статус
Оффлайн
Регистрация
8 Фев 2023
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Всем привет. Делаю простенький оверлей для доты на Imgui с бэкендом d3d11 и заметил, что после инжекта ввод с клавиатуры и мыши в доте не работает, пока не сделать Alt+Tab из игры и в игру. Хук стандартный (MinHook обернутый в классы с деструкторами), WindowProc выглядит вот так:
C++:
extern auto ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -> LRESULT;
auto WINAPI WinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) -> LRESULT
{
  namespace m = d2a::managers;
  static auto input_fix_flag = std::once_flag();

  m::IO::ref_mut().process(wparam, msg);
  if(not m::Draw::ref().show_ui())
    return ::CallWindowProcA(m::Draw::ref_mut().d3d11_data_mut().oWndProc, hwnd, msg, wparam, lparam);
  ::ImGui_ImplWin32_WndProcHandler(hwnd, msg, wparam, lparam);
  std::call_once(input_fix_flag, [hwnd, msg, wparam, lparam]() {
    llog::trace("fixing input");
    ::CallWindowProcA(
      m::Draw::ref_mut().d3d11_data_mut().oWndProc,
      hwnd,
      msg,
      wparam,
      lparam
    );
    llog::debug("fixing input......................... OK");
  });
  return 1;
}
Функция вызывается:

Основу для кода брал с опенсорсного чита (
Пожалуйста, авторизуйтесь для просмотра ссылки.
, спасибо автору за такие исходники) и понемногу переписываю ее на более безопасный вариант кода, у него тоже висит issue с этой проблемой (
Пожалуйста, авторизуйтесь для просмотра ссылки.
).
Предполагаю, что это как-то может быть связано с вызовом ::GetForegroundWindow.
Буду благодарен за любые идеи, почему так происходит и как это фиксить.
 
Начинающий
Статус
Оффлайн
Регистрация
30 Мар 2020
Сообщения
324
Реакции[?]
24
Поинты[?]
12K
вот научился скачивать имгуи, теперь учись и дебажить )))))
 
Похожие темы
Сверху Снизу