- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 394
- Реакции
- 7
Наткнулся на годную реализацию софтварной части драйвера oblitum/interception на C#. Если кто-то из вас до сих пор мучается с кривыми врапперами, которые тянут за собой тонну зависимостей и мусорят в памяти, то этот проект — мастхэв.
Автор переписал всё на чистом C#, уйдя от тупого копирования C++ кода к нормальному ООП. Главные фишки для тех, кто понимает:
Как это выглядит в коде:
Если лень возиться с контекстами, есть синглтон с уже готовыми объектами мыши и клавы:
Для тех, кто пишет аимботы или сложные макросы, где важен минимальный отклик и отсутствие фризов от сборщика мусора — вариант идеальный. По производительности это фактически уровень нативного кода.
Естественно, не забывайте, что это только софтварная обертка. Сам драйвер Interception всё еще должен быть в системе. Кто-то уже пробовал прокидывать это через мапперы или юзаете дефолтный инсталлер?
Пишите, кто уже успел потестить этот форк в своих проектах.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Автор переписал всё на чистом C#, уйдя от тупого копирования C++ кода к нормальному ООП. Главные фишки для тех, кто понимает:
- Вес всего 16 KB.
- Полная поддержка Native-AOT (компилим в один бинарник и не паримся).
- Никаких внешних зависимостей (No-Dependency).
- No-GC — критически важно для производительности в реалтайме.
- Никаких статических методов в базе, логика переведена на контексты.
Как это выглядит в коде:
Код:
var context = Context.Create();
context.SetFilter(Filter.All);
var mouse = context.WaitMouseInput();
var stroke = new MouseStroke { X = 10, Y = 100, Flags = MouseFlag.MoveRelative };
mouse->Send(&stroke);
context.Destroy();
Если лень возиться с контекстами, есть синглтон с уже готовыми объектами мыши и клавы:
Код:
Interception.MoveMouse(10, 100);
В сурсах валяются примеры под разные задачи:
- ControlAxisSwap.cs — инверсия осей при зажатом Ctrl.
- DisableMouseAcceleration.cs — костыль для обхода акселерации.
- XYReverse, SwapShiftAndCapslock и прочее.
Для тех, кто пишет аимботы или сложные макросы, где важен минимальный отклик и отсутствие фризов от сборщика мусора — вариант идеальный. По производительности это фактически уровень нативного кода.
Естественно, не забывайте, что это только софтварная обертка. Сам драйвер Interception всё еще должен быть в системе. Кто-то уже пробовал прокидывать это через мапперы или юзаете дефолтный инсталлер?
Пишите, кто уже успел потестить этот форк в своих проектах.