libraries

Libraries

This page includes many of the resources originally collected at Awesome AutoHotkey (CC BY 4.0), a curated list of awesome AutoHotkey libraries, library distributions, scripts, tools and resources.

  • WinClip - by Deo - WinClip is a clipboard manipulation class extending AutoHotkey's clipboard capabilities including support for RTF, HTML and images. Forum thread: [v1].
  • AHKonsole - by Geek (GeekDude) - Class based AutoHotkey library for console support. This library enables you to create an object representing a console to interact with, as well as multiple console buffer objects to facilitate in double buffering. Forum thread: [v1].
  • LibCon - by joedf - AutoHotkey Library For Console Support. This library enables you to write console applications and interact with other console instances. Basically, this library facilitates anything that has to do with writing and interacting with consoles. Forum thread: [v1].
  • AHK_ctable - by hoppfrosch - Library to handle strings in tabular format - Forum thread: [v1].
  • CSV - by trueski/kdoske - Library to work with CSV files and Listview functions. Forum thread: [v1].
  • List manipulation functions - by Laszlo - Function library to manipulate comma delimited lists. Forum thread: [v1].
  • ObjCSV - by JnLlnd - Library to load/save CSV files to Objects and and Listview functions. Forum thread: [v1].
  • ObjDump/ObjLoad - by HotKeyIt - Serialize/deserialize object to/from variable/memory. [v1][v2]
  • SerDes - by Coco (Cocobelgica) - Serialize / de-serialize an AutoHotkey object structure. Forum thread: [v1].
  • Table - by VxE - Library to manipulate strings in tabular (TSV) format and Listview functions. Forum thread: [v1].
  • XA - by trueski/hi5 - Serialize/deserialize array to/from XML. Forum thread: [v1].
  • YAML - by HotKeyIt, thqby - Full YAML support in AHK [v2]

JSON (JavaScript Object Notation) is a lightweight data interchange format widely used for exchanging data between a server and a client, or between different components of an application. While AutoHotkey is primarily known for its automation capabilities, third-party libraries offer powerful options for working with JSON data.

  • Base64 - by thqby - Simple Base64 library for buffers [v2]
  • Facade - by Shambles - A Set of Functional Programming Libraries. - Forum thread: [v1]
  • HashTable - by Shambles - A Hash Table Implementation for AutoHotkey. [v1]
  • HashTable - by HelgeffegleH - This is a custom, one-dimensional, associative array using familiar syntax - Forum Thread: [v1]
  • HashMap.ahk - by Geek (GeekDude) - A drop-in replacement for v2's Map but hash based instead of binary search based - Forum thread: [v2]
  • LibCrypt - by different authors - A collection of crypting and encoding functions. [v1]
  • Promise - by thqby - Implements a javascript-like Promise [v2]
  • Type_Checking - by Shambles - Type Checking for AutoHotkey - Forum thread: [v1]
  • HashFile - by Deo and Lexikos - Generate a hash string from a target file, either MD5, SHA, SHA256, SHA384, or SHA512 [v2]
  • CGdip - by thqby - GDI+ wrapper class for AHKv2 [v2]
  • GDIp - by tic - Full featured library that helps in interaction with Microsoft's gdiplus.dll - Forum thread: [v1].
  • ImagePut - by iseahound - Image library for converting to files, streams, windows, base64, urls, cursors, screen coordinates, clipboard, pointers, handles, and more. Supports AutoHotkey v1 and v2. - Forum thread: [v1][v2]
  • AHKv2-GDIP - Update of the above GDI+ library compatible with AHK v2 [v2]
  • GDIp_ImageSearch - by tic - Library using gdiplus.dll for searching image instances on the screen. See the end of that thread for MasterFocus' improved version, or see his GitHub repo here [v1]
  • ShinsImageScanClass - by Spawnova (Shin) - More advanced image and pixel searching for AHK [v1][v2]
  • ShinsOverlayClass - by Spawnova (Shin) - Create Direct2D overlays for in-game heads up information [v1][v2]
  • Simple GDI class - by Geek (GeekDude) - A class aiming to make using low-level GDI functions simple. [v1]
  • Particle System - by tidbit - A simple class to add particles to your GUI or onto your screen, using GDI+. Forum thread: link. [v1]
  • Rebar - by Pulover - AHK class for AutoHotkey Rebar custom controls. Forum thread: [v1]
  • Toolbar - by Pulover - AHK Class for AutoHotkey Toolbar custom controls. Forum thread: [v1]
  • Edit v2.0 - by jballi - Library for the lightweight and surprisingly powerful default Edit control for displaying and editing text. Forum thread: [v1]
  • LV_Colors - by just_me - Individual background and/or text colours for a GUI ListView's cells or rows. Forum thread: [v1]
  • LV_EX - by just_me - Some additional functions for AHK GUI ListView controls. Forum thread: [v1]
  • LV_InCellEdit - by just_me - In-cell editing for ListView controls. Forum thread: [v1]
  • LV_Rows - by Pulover - Additional functions for AHK ListView controls. Forum thread: [v1]
  • CHotkeyControl - by evilC - Replacement for AHK hotkey GuiControl that supports mouse buttons etc (Partially mature). [v1]
  • HParse - by Avi - Function to convert meaningful shortcuts (Ctrl+X) to AutoHotkey syntax (^x). [v1]

Libraries for integrating AHK with other programming languages, or integrating AHK into other programming languages.

  • AutoHotkey-jk - by Lexikos - Write fully featured scripts in JavaScript by embedding JS into AHK. [v2]
  • CLR.ahk - by Lexikos - .NET Framework Interop (CLR, C#, VB) allowing .NET code to be accessed by AHK. [v1][v2]
  • import_v1lib - by thqby - Import ahk v2 library to v1 [v2]
  • import_v2lib - by thqby - Import ahk v1 library to v2 [v1]
  • Lua.ahk - by Delta Pythagorean - Write fully featured scripts in Lua by embedding Lua into AHK. [v2]
  • Native.ahk - Extend AHK with new high-performance functionality by loading DLLs and MCode as native function objects. This is similar to how Python supports writing libraries in C/C++ like Numpy, Pandas, SciPy, PyTorch, etc. [v2]
  • pyahk - by thqby - Extend Python with AHK functionality by embedding AutoHotkey.dll into Python [v2]

Libraries to help with communication between script processes.

  • ahk_thread, Receive && Pass - by Chuck_2009 - Lets you Initialize ahk_threadReceive(GroupID, Callback) and then use ahk_threadPass(GroupID, String) in any other AutoHotKey v2 script (compiled or not) to send a string which is passed to the Callback function.

Notable mention to Descolada's tutorial Communicating between scripts (IPC, inter-process communication) which demonstrates many techniques and provides some sample code.

  • CvJoyInterface - by evilC - Control a vJoy virtual joystick using AHK. [v1]
  • JoystickWrapper - by evilC - Full event-based, 8 axis, 128 button, 4 POV joystick reading (C# DLL, Uses Lexikos' CLR). [v1]
  • XInput - by Lexikos - Read XBOX gamepads using XInput (Only way to independently read L/R triggers), control rumble motors. Forum thread: [v1][v2]
  • calc() - math expression evaluation incl brackets. [v1]
  • Eval - by Pulover - Evaluate expressions in strings. Forum thread: [v1]
  • Scientific Maths - by Avi - Library facilitating high precision mathematics. [v1]
  • Time() - by HotKeyIt - Count Days, hours, minutes, seconds between dates. Forum thread: [v1]

Machine Code (referred to as "mcode") is the process of embedding code written in a different language (usually C) into AHK code, and then calling it with the DllCall() function. MCode is especially useful for performance critical operations like physics calculation or image processing, since compiled C code is much faster than the compiled C++ code which is used to interpret regular AHK code. However, due to the unique constraints of code being executed inside of AHK by DllCall(), special tools are needed to compile any old C/C++ code into MCode. For guidance on how to use Machine Code tools, see the Machine Code guide page.

  • String Things - by tidbit - Stand-alone string manipulation functions. [v1]
  • TF - by hi5 - Functions for manipulation of text files such as *.txt, *.ahk, *.html, *.css etc and Strings (or variables). Forum thread: link. [v1]