AutoHotkey Migration to EyeAuras

Hub for migrating AutoHotkey scripts to EyeAuras scripting, triggers, actions, and services.

AutoHotkey Migration to EyeAuras

This is the hub for migrating AutoHotkey scripts to EyeAuras. AHK is too broad for a single page, so detailed migration notes live in focused area files.

Use this together with AHK Gaps. The gaps page tracks behavior that needs deeper verification before we call it equivalent.

Plan

  • Keep this page small: navigation, scope, and an at-a-glance matrix.
  • Put detailed code samples, recommendations, and verification links in domain pages such as Windows, Hotkeys, and DLL And Native Interop.
  • Every domain page should include a short mapping table, focused conversion examples, standalone **Recommendation:** paragraphs, and docs/source links.
  • When a domain page becomes too large, split it further. For example, windows.md can later become windows/matching.md, windows/activation.md, and windows/controls.md.
  • Keep uncertain behavior in AHK Gaps and link to gap IDs instead of hiding caveats inside examples.

How To Read This

  • AutoHotkey examples use v2 names and syntax first. v1 command syntax and ErrorLevel differences are tracked as migration caveats.
  • EyeAuras scripts are C# scripts. Top-level script files have host members such as Sleep(...), AuraTree, Variables, and cancellationToken; services are usually injected as script properties.
  • Prefer direct script APIs and services for migration examples. Mention Actions, Triggers, or Overlays only when the user is building configurable Aura Tree behavior, or when the component provides substantial domain runtime rather than a thin API wrapper.
  • Each mapping includes a short judgment. "Possible" is not enough; the guide should say when the EyeAuras route is cleaner, merely acceptable, awkward, or better expressed as a helper/recipe.

Area Files

AreaUse ForCurrent Shape
HotkeysHotkey labels, Hotkey, #HotIf, simple hotkey actionsHas first conversion and source anchors. Needs custom combo/prefix expansion.
Keyboard And MouseSend, SendText, SendInput, GetKeyState, KeyWait, MouseMove, ClickHas direct send, key wait, and coordinate click conversions. Send grammar is a gap.
WindowsWinExist, WinActive, WinWait, WinActivate, ControlClick, ControlSendHas single-window lookup and activation. Needs full WinTitle token table.
CV, Pixels, And ImagesCoordMode, PixelGetColor, PixelSearch, ImageSearchHas pixel-search conversion. Needs CoordMode and one-pixel color tables.
Runtime, Timers, And StateSleep, SetTimer, variables, globals, shared stateHas sleep and ordinary state. Needs timer and shared-variable recipes.
ClipboardA_Clipboard, ClipboardAll, ClipWait, clipboard eventsScaffolded. Needs script DI/event verification.
DLL And Native InteropDllCall, CallbackCreate, Buffer, NumGet, NumPut, raw Win32Direct P/Invoke examples first; existing EyeAuras/PoeShared APIs are rewrite options.
AHK GapsCross-domain semantic gaps and verification backlogTracks unresolved behavior and candidate helpers.

Primitive Matrix

AutoHotkey NeedAHK APIsDefault AreaEyeAuras RouteJudgment
Run code from a hotkeyHotkey labels like ^!s::, Hotkey, #HotIfHotkeys[Keybind], IHotkeyTrackerGood shape for static hotkeys; dynamic/context hotkeys need more mapping.
Send keyboard or text inputSend, SendText, SendInputKeyboard And MouseISendInputScriptingApiGood for explicit input; weak for full AHK send grammar.
Read key or mouse stateGetKeyState, KeyWaitKeyboard And MouseISendInputScriptingApi.IsKeyDown, IsMouseDownGetKeyState is fine; KeyWait needs a helper.
Move and click mouseMouseMove, Click, MouseClick, MouseGetPosKeyboard And MouseISendInputScriptingApiGood, especially with coordinate overloads.
Check or select windowsWinExist, WinActive, WinWait, WinWaitActiveWindowsIWindowSelector.FindWindow(...), IWindowMatcher, window servicesGood for single-window lookup; wait semantics need a pattern.
Activate windowsWinActivateWindowsIWindowSelector.GetWindow(...), WindowHandleExtensions.Activate(...)Good as direct script code after resolving a handle.
Sleep or repeat laterSleep, SetTimerRuntime, Timers, And StateScript Sleep(...), loops, services, observablesSleep is good; SetTimer needs redesign.
Find pixels or imagesPixelGetColor, PixelSearch, ImageSearch, CoordModeCV, Pixels, And ImagesCV.ForScreen(), CV.ForWindow(...), ICvAccessorMore explicit than AHK, but heavier.
Read or write clipboard textA_Clipboard, ClipWait, OnClipboardChangeClipboardIClipboardManagerBasic text is likely fine; full clipboard behavior is weak.
Store script stateVariables, built-in variables, globalsRuntime, Timers, And StateC# locals/fields/objects; ScriptVariable<T> only for shared stateBetter for normal state; shared state needs clear recipes.
Call native DLLsDllCall, CallbackCreate, Buffer, NumGet, NumPutDLL And Native InteropTyped C# P/Invoke wrappers; existing APIs as rewrite optionsDirect equivalent exists, but C# needs explicit signatures and lifetime rules.

EyeAuras References

AutoHotkey References