This is probably the largest release since v1.0.0 and it contains multiple new features and bug fixes, as well as breaking changes.
Platform Support
-
Support for Mac Catalyst was added which makes it possible to use SharpHook in .NET MAUI apps on macOS.
-
The minimum .NET Framework version was bumped to 4.6.2.
-
Support for Windows on Arm32 was removed.
Breaking Changes
-
Almost all
KeyCodevalues were changed. New codes were added and some were removed. The actual enum values are meaningless and may be changed again in the future. -
MouseWheelEventDatadoesn't containAmountanymore. -
Mouse wheel simulation doesn't accept the amount anymore. Instead it accepts the scroll direction and type which makes it possible to simulate horizontal scrolling.
-
The meaning of the mouse wheel rotation value was changed - a positive value indicates that the wheel is rotated up or left, and a negative value indicates that the wheel is rotated down or right.
-
KeyboardEventData.KeyCharwas renamed toKeyboardEventData.RawKeyCharand theKeyboardEventData.KeyCharproperty was added. -
LogEntryParseris now a singleton and doesn't have a public constructor. -
The constants in the
MouseWheelScrollDirectionenum were shortened:VerticalDirectiontoVerticalandHorizontalDirectiontoHorizontal.
New Features
-
Text entry simulation was added.
-
Low-level functionality providers were added - they can be used instead of directly using the
UioHookclass. -
Horizontal mouse wheel simulation is now possible.
-
Classes which help with testing were added.
-
Reactive global hook can now accept a default scheduler which will be used for all observables.
-
Extension methods for
SharpHook.Native.ModifierMaskwere added.
Bug Fixes
-
Global hooks can now be created and disposed multiple times on Windows without problems.
-
Many key code mappings to OS-specific key codes were fixed.
-
KeyTypedevents are now better at determining which characters should be produced by key presses on Windows.
Other Changes
-
libuiohook was updated to commit 6f42599.
-
All methods in all structs in the
UioHook.Nativenamespace are now marked asreadonly. -
SharpHook.Reactive now depends on Rx.NET 6.0.0.
-
Docs now use a new theme.