Recent Changes

This page summarizes the script-visible changes in recent Keysharp releases, so that a script written against an earlier version can be brought up to date. The release page holds the authoritative notes and the downloads for each version.

Note: Keysharp has not reached version 1.0. Behavior can change between releases, including in ways which require edits to existing scripts. Each release below lists its breaking changes first.

Documented Version

PropertyValue
Keysharp version described here0.0.0.17
AutoHotkey compatibility targetv2.1-alpha.33

See Changes from AutoHotkey to Keysharp for the differences, Platform Support for per-platform availability, and the platform remarks on each affected reference page.

The corresponding upstream language changes are described in Changes from v2.0 to v2.1.

0.0.0.17

Compatibility target: AutoHotkey v2.1-alpha.33.

Breaking Changes

Other removed or renamed extensions:

Previous APIReplacement
ObjHasProp; Obj.OwnPropCount; Ks.JoinHasProp (also checks primitive prototypes); ObjOwnPropCount; Array.Join
Array/Map.MaxIndex and MinIndexRemoved; ComObjArray is unaffected.
A_IsPersistent; A_AllowTimers; A_ThreadIdA_Persistent; A_Thread.AllowTimers; A_Thread.Id
A_InputLevel; A_SuspendExemptRemoved. Configure input levels with #InputLevel, Hotkey's In option or the hotstring In option; use #SuspendExempt for exemption.
A_Asm*; A_CommandLine; A_HasExitedApp metadata; App.CommandLine; App.ExitReason != ""
A_KeysharpPath; A_AhkBuildVersionA_AhkPath; use Ks.A_KsVersion for the engine version or App.Version for the application version.
A_IsUnicode; A_Priority; A_UseHook; A_LoopKey; A_LoopFileLongPathRemoved. Use the for-loop's key variable and A_LoopFileFullPath where applicable.
A_WorkAreaWidth/Height; A_TotalScreenWidth/Height; A_ScreenScaleMonitor.Primary.WorkArea.Width/Height; Monitor.VirtualScreen.Width/Height; Monitor.Primary.Scale
FileDirName; WinMaximizeAllSplitPath (resolve relative paths first); WinMaximize each result of WinGetList.
AES; CRC32; MD5; SHA1/256/384/512; SecureRandomCrypt.Encrypt/Decrypt, CRC32, Hash and SecureRandom.
CopyImageToClipboard; IsClipboardEmptyClipboard.Image; Clipboard.IsEmpty
MonitorFromPoint; MonitorGetScaleMonitor.FromPoint; Monitor.Scale
Ks.JsonEncode/JsonDecode; Base64Encode/Base64DecodeJson.Encode/Decode; Base64.Encode/Decode. JSON null decodes to unset unless NullValue supplies a replacement; assigning unset to a Map element deletes its key.
Buffer.ToHex/ToBase64/ToByteArrayHex.Encode; Base64.Encode; pass Buffer directly where .NET expects byte[].
Array.MapTo; Ks.NormalizeEolArray.Map; Ks.ReplaceLineEndings
FuncObj; InputObject; ProcessInfo; RegExMatchInfoCsFunc; InputHook; ScriptProcess; RegExMatchInfo. Regex Success was removed; a Cs miss stores an empty value, and Count excludes the overall match.
LockRun(LockObject, Callback, Arguments*)Lock.Acquire/Release; only Lock objects can be locked.

New

Platform

Fixes and Performance

Compatibility and correctness fixes cover parsing, imports and closures, numeric/string operations, regex options and callouts, errors, callbacks, input, timers, window/control operations, COM by-reference VARIANT writes, file/registry operations and native memory. GUI automatic sizing, Edit resizing, RichEdit text casing, exact image copies, and Linux/macOS list/tree controls, InputBox, menus and coordinates are corrected. macOS GUIs accept the first click and use window-server handles; BlockInput blocks requested mouse movement in foreign applications, and Keyview pastes plain text. Hotstrings recognize abbreviations of any length and punctuation boundaries on Linux/macOS. Linux native-state queries and Wayland window/overlay updates are refreshed. Logical comparison is portable. Parsing, object/collection access, window/control searches, hotstring matching, COM calls and file loops are faster; native-resource cleanup, compiler-daemon recovery and interruptible waits are improved. See Platform Support for backend limits.

0.0.0.16

Released 2 August 2026.

Breaking Changes

New

Platform

Fixes and Performance

Release-mode stack traces for C# exceptions, OnExit teardown, script exit when the last window closes, thread priority handling and DLL path normalization. Parser fixes for #Include, static variables, dereferences and remap syntax. Regular-expression pattern caching, font caching, cheaper per-call thread setup and faster keyboard-layout queries.

0.0.0.15

Released 22 June 2026. This release made Keysharp cross-platform across Windows, Linux and macOS.

Earlier Releases

Notes for 0.0.0.14 and earlier are on the release page. For changes which have not yet been released, see the source history; documentation changes are tracked in the KeysharpDocs history.

Inherited Upstream History

The original AutoHotkey change log is retained as an archived upstream reference. Its entries describe releases of AutoHotkey, not of Keysharp.