Introduction
SharpHook provides a cross-platform global keyboard and mouse hook, event simulation, and text entry simulation for .NET. It is a wrapper of libuiohook and provides direct access to its features as well as higher-level types to work with it.
Installation
dotnet add package SharpHook --version 5.1.1
dotnet add package SharpHook.Reactive --version 5.1.1
Supported Platforms
SharpHook targets .NET 6+, .NET Framework 4.6.2+, and .NET Standard 2.0. The following table describes the availability of SharpHook on various platforms:
Windows | macOS | Linux | |
---|---|---|---|
x86 | Yes | N/A | No |
x64 | Yes | Yes | Yes |
Arm32 | No | N/A | Yes |
Arm64 | Yes | Yes | Yes |
Platform support notes:
Windows 10/11 is supported. Support for Windows on Arm32 was removed in version 5.0.0 since it was removed in .NET 5.
macOS 10.15+ is supported. Starting with version 5.0.0, Mac Catalyst is also supported (13.1+). macOS requires that the accessibility API be enabled for the application if it wants to create a global hook.
Linux distributions supported by .NET are supported by SharpHook. Linux on x86 is not supported by .NET itself. Only X11 is supported - Wayland support may be coming, but it's not yet here.
More info on OS support can be found in an article on OS-specific constraints.