EasyUniversal / DocsДокументация · SDK 0.3Подписка Universal ↗
Easy Universal / Справочник SDK

Windows-ввод: разрешения и ограничения

AngelScript · native runtime · локальная сборка

Windows-ввод — дополнение SDK 0.3

Разрешение пакета input (только api 0.3) и разрешённый пользователем PID.
CLI: --allow-process PID --allow-input. В менеджере выберите PID и разрешите
доступ к выбранному процессу: объявленный input включается при Load script.
Отдельного переключателя Control active window нет.
Чтение памяти по-прежнему требует process_read; input его не предоставляет.
Без разрешённого PID input выключен. Согласие на PID сбрасывается при его смене
или выборе другого пакета; снятие доступа выключает input. Разрешение заморожено на время сеанса.

bool input::enabled();
bool input::active();
bool input::key_down(uint virtualKey);
bool input::move_mouse(int dx, int dy);
bool input::click_left();
string input::last_error();

enabled безопасен без разрешения. Остальные вызовы требуют manifest input
и отдельного согласия; отсутствие согласия — script exception.
active проверяет живой target handle и PID foreground-окна. key_down принимает
Windows VK 1–254 и возвращает false, если выбранное окно не активно. Состояния
клавиш не записываются в журнал и не сохраняются. Глобальных hooks нет.

move_mouse и click_left доступны только в on_frame. Один move и один click
на кадр; dx/dy от −64 до 64, не менее 100 мс между кликами. Перед отправкой
повторно проверяется foreground PID. Клик — пара down/up в одном SendInput;
при частичной отправке предпринимается дополнительное отпускание. Удержание
кнопок/клавиш, ввод текста, shell и memory writes этим API не предоставлены.

Это обычный SendInput, не гарантированное получение события игрой. UIPI,
raw input и настройки приложения могут ограничивать работу. Проверка фокуса
и SendInput не атомарны: мгновенная смена foreground остаётся гонкой Windows.
Никакого доступа к защищённой памяти и обхода античита input не создаёт.

Проверки: tests/input.ps1 — no-grant, PID, foreground, phase, invalid VK,
undeclared grant и API version. Эти проверки не отправляют ввод в приложения
пользователя; приём мыши/кликов реальной игрой проверяется отдельно.

Easy Universal — отдельный проект. Easy External не изменён.