Skip to content

Releases: TolikPylypchuk/SharpHook

v6.0.0

18 May 19:01
64b0672

Choose a tag to compare

This release contains multiple breaking changes, features, and bug fixes. View the migration guide for upgrade guidelines.

Platform Support

  • Support for Mac Catalyst on non-MAUI applications was added.

  • The minimum .NET Framework version was bumped to 4.7.2. Direct support for .NET 6 and 7 was removed, but it's still available through .NET Standard.

Breaking Changes

  • All structs and enums were moved from SharpHook.Native to SharpHook.Data.

  • ModifierMask and EventReservedValueMask were merged into a single enum - EventMask.

  • UioHookEvent.Reserved was removed. Its values are now part of UioHookEvent.Mask.

  • All constructors of SimpleGlobalHook, TaskPoolGlobalHook, SimpleReactiveGlobalHook, and ReactiveGlobalHookAdapter except the main ones were removed.

  • TaskPoolGlobalHookOptions was removed.

  • All obsolete values in the KeyCode enum were removed.

  • LogSource.Register was removed.

  • Members of HookException related to binary formatters were removed.

  • The behaviour of TestGlobalHook and TestProvider was changed. Instead of dispatching events in the same thread that simulates them, they now instead add events into an event loop running on a different thread.

  • TestProvider now throws an exception if Run or RunAsync is called and it's already running.

New Features

  • The ability to stop global hooks without disposing of them was added.

  • Several functions for working with the macOS Accessibility API were added.

  • UioHookEvent.Mask now contains the state of modifiers and mouse buttons regardless of the global hook type (keyboard, mouse, or both).

  • Running global hooks won't be garbage-collected.

Bug Fixes

  • Getting libuiohook logs on Mac Catalyst applications was fixed.

  • The issue with global hooks breaking Alt codes on Windows was fixed.

  • Getting events for Caps Lock was fixed on macOS.

  • Disabling access to the Accessibility API when a global hook is running on macOS won't freeze the OS anymore.

  • Disposing a TaskPoolGlobalHook inside an event handler doesn't throw an exception anymore.

Other Changes

  • libuiohook was updated to commit c61b486.

  • SharpHook.Reactive now depends on Rx.NET 6.0.1.

  • Docs for older versions were removed. From now on, only the latest version will have docs hosted on sharphook.tolik.io.

v5.3.9

29 Mar 10:39
b5757df

Choose a tag to compare

This release removes modifier mask inconsistencies when some events are skipped and adds .NET 9 as a target. libuiohook was updated to commit 961ed5a.

v5.3.8

27 Sep 19:45
09b7fc1

Choose a tag to compare

This release fixes mouse button release events for mouse buttons 2 and 3 on Linux. libuiohook was updated to commit ce96f42.

v5.3.7

09 Jul 20:59
995d5d2

Choose a tag to compare

This release fixes a CPU usage issue on Linux. libuiohook was updated to commit 1c96539.

v5.3.6

22 May 20:24
732fdf3

Choose a tag to compare

This release fixes the libuiohook build provided for macOS x64.

v5.3.5

20 May 20:24
920b549

Choose a tag to compare

This release fixes simulating mouse events when the screen configuration changes, as well as simulating text with repeating characters - both on Windows. libuiohook was updated to commit c7500ce.

v5.3.4

05 May 19:12
79afdd3

Choose a tag to compare

This release fixes simulating some keys on Windows. libuiohook was updated to commit 5128c04.

v5.3.3

28 Apr 10:11
00cdf82

Choose a tag to compare

This release fixes simulating mouse movement on multiple screens on Windows. libuiohook was updated to commit 902a30b.

v5.3.2

02 Apr 20:53
25f0af6

Choose a tag to compare

This release fixes publishing with Visual Studio and simulating mouse movement on Windows. libuiohook was updated to commit 5024193.

v5.3.1

03 Mar 19:22
192f8ea

Choose a tag to compare

This release makes it safe to dispose an already disposed test global hook.