- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 470
- Реакции
- 10
Народ, кто сейчас ковыряет THE FINALS, столкнулся с классической проблемой: не получается зацепиться за процесс. Пробовал стандартный способ через имя окна и процесс, но на выходе полный ноль.
Есть подозрение, что Easy Anti-Cheat (EAC) либо прячет окно, либо как-то хитро его протектит. В логах пусто, просто FindWindow возвращает null, а если и находит хендл, то GetWindowThreadProcessId отрабатывает криво.
Собственно, сам код, который отказывается адекватно работать:
Технические нюансы:
Кто как решал подобное в финалсе? Юзаете стандартный snapshot или уже перекатились на ядерные методы для получения инфы о процессе?
Есть подозрение, что Easy Anti-Cheat (EAC) либо прячет окно, либо как-то хитро его протектит. В логах пусто, просто FindWindow возвращает null, а если и находит хендл, то GetWindowThreadProcessId отрабатывает криво.
Собственно, сам код, который отказывается адекватно работать:
Код:
DWORD PID(const std::wstring& windowName)
{
HWND hwnd = FindWindow(nullptr, windowName.c_str());
if (hwnd == nullptr) {
std::wcerr << L"Can not found the window: " << windowName << std::endl;
return 0;
}
DWORD processId = 0;
GetWindowThreadProcessId(hwnd, &processId);
return processId;
}
Технические нюансы:
- EAC часто стрипает хендлы или блокирует доступ к определенным WinAPI вызовам из юзермода.
- Использовать FindWindow в играх с EAC — затея сомнительная, так как античит может менять заголовок или класс окна.
- Возможно, стоит копать в сторону CreateToolhelp32Snapshot или искать процесс по имени экзешника напрямую, минуя HWND.
Кто как решал подобное в финалсе? Юзаете стандартный snapshot или уже перекатились на ядерные методы для получения инфы о процессе?