- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 330
- Reaction score
- 7
Most C# wrappers for the oblitum/interception driver are bloated, dependency-heavy trash. If you are tired of carrying around heavy DLLs and dealing with GC-induced input lag, this fork is for you.
I’ve been digging through the original software-side implementation and decided to drop a complete rethinking of the core entirely in C#. This isn't just a dirty P/Invoke wrapper — it's a native-AOT compatible, no-dependency, zero-GC implementation that compiles down to a tiny 16 KB binary.
Technical Highlights:
Core Implementation Example:
For those who want it even simpler, there is a singleton setup to handle global mouse/keyboard events without manual context management.
This is a solid base for anyone building custom input filters or bypasses that require low-level driver interaction without the overhead of the original interception.dll. Since it's C#, you can easily integrate it into your existing projects and maintain a clean stack.
Anyone already tried porting their AHK logic to this native core?
You cant view this link please login.
You cant view this link please login.
I’ve been digging through the original software-side implementation and decided to drop a complete rethinking of the core entirely in C#. This isn't just a dirty P/Invoke wrapper — it's a native-AOT compatible, no-dependency, zero-GC implementation that compiles down to a tiny 16 KB binary.
Technical Highlights:
- Native-AOT support: Ship as a single standalone file without the .NET runtime bloat.
- Zero GC & No Dependencies: Perfect for high-performance applications where latency is a killer.
- Logic Overhaul: Switched from messy static methods to clean OOP (Context-based).
- Tiny Footprint: Only 16 KB for the entire software-side implementation.
Core Implementation Example:
Code:
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();
For those who want it even simpler, there is a singleton setup to handle global mouse/keyboard events without manual context management.
Control + Mouse Axis Swap:
Disable Mouse Acceleration (Forcing Raw Input):
Code:
void Start() => Interception.CancelableOnMouseMove += OnMouseMove;
bool OnMouseMove(int x, int y)
{
if (Interception.IsKeyDown(Key.LControl))
{
Interception.MoveMouse(-x, -y);
return false;
}
return true;
}
Disable Mouse Acceleration (Forcing Raw Input):
Code:
bool OnMouseMove(int x, int y)
{
var cursor = stackalloc int[2];
GetCursorPos(cursor);
SetCursorPos(cursor[0] + x, cursor[1] + y);
return false;
}
This is a solid base for anyone building custom input filters or bypasses that require low-level driver interaction without the overhead of the original interception.dll. Since it's C#, you can easily integrate it into your existing projects and maintain a clean stack.
Anyone already tried porting their AHK logic to this native core?