AutoHotkey_H New Features [home]
Commands / Functions | |
---|---|
Cast | Converts a value from one data type to another data type. |
Macros | Create a macro instead of a function. Macro will use caller's scope for all variables except for parameters. |
#DllImport | Create an alias function for a dll function that allows to omit parameters and use default values. It can also load pure machine code supplied as hex string, see example. |
#NoEnv / GetEnv | #NoEnv is now used in all scripts. Use GetEnv to add environment variables to script. |
#WarnContinuableException | Do not warn on continuable exception, continue execution like main AutoHotkey does. |
AhkThread | Create a new thread using AutoHotkey.dll included in resources. |
ExeThread | Create a new thread 'without' using AutoHotkey.dll, it uses same methods as AhkExported. |
ThreadObj | Create a new thread 'without' using AutoHotkey.dll, based on COM using ObjShare. |
NewThread | Create a new thread 'without' using AutoHotkey.dll. If you want to communicate with the thread it is best to use ExeThread or ThreadObj. |
Alias | Create ByRef variable or share variables to other threads in a multi-thread environment. |
BinToHex | Convert binary data to Hex string. |
BinRun | Run executable file from Memory. |
CreateScript | Create script from main script for NewThread, AutoHotkey.dll, DynaRun or BinRun. |
CriticalSection | Creates a Critical
Section Structure and returns its pointer. Use EnterCriticalSection and LeaveCriticalSection to Enter and
Leave the Critical Section. Critical Section is requred for multi-threading environment. |
DirGetParent | Get parent directory of a file or directory. |
ErrorMessage | Get error message string of A_LastError. |
ExtractIconFromExecutable | Extract an icon from exe or dll. |
FileReplace | Similar to FileAppend but replaces the file if it exists. |
FindFunc (low level) | Get a pointer to a Function. |
FindLabel (low level) | Get a pointer to a label. |
GetEnv | Get environment variables and make global variables in script. |
HexToBin | Convert Hex string to binary memory. |
HIBYTE | Get high byte from a value. |
HIWORD | Get high word from a value. |
Input | While Input is
running the variable will be updated instantly and will be available to
script. Use SetTimer or AutoHotkey.dll to get content of variable while
Input is running. New option A is available to append input to variable, otherwise the variable will be set empty before Input starts. |
IsBom | Check if a file has byte order mark. |
LoadPicture | Load picture into memory and return HBITMAP. |
LOBYTE | Get low byte from a value. |
LOWORD | Get low word from a value. |
MAKELANGID | Make LANGID. |
MAKELCID | Make LCID. |
MAKELONG | Make LONG. |
MAKELPARAM | Make LPARAM. |
MAKELRESULT | Make LRESULT. |
MAKEWORD | Make WORD. |
MAKEWPARAM | Make WPARAM. |
MCodeH | Create machine code function. |
OnMessage | New parameter allows monitoring same message number for multiple windows and call different functions for each window. |
Progress | Progress function as in AutoHotkey v1. |
ResDelete | Delete a resource in executable file. |
ResDllCreate | Create a resource only dll file. |
ResExist | Check if a resource exists in executable file. |
ResPut | Add a resource to executable file from memory. |
ResPutFile | Add a file to resources of executable file. |
Send | Sleep functionality for Send command, for example Send 123{100}456 would send 123 then sleep for 100 milliseconds and send 456. |
sizeof | Returns the size in bytes for default data type, structure or structure definition, for example MsgBox % sizeof("TCHAR"). |
SplashImage | SplashImage as in AutoHotkey v1. |
SplashTextOn / Off | SplashTextOn as in AutoHotkey v1. |
StrPutVar | Put an encoded string into a variable. |
ToChar | Convert an integer to signed char. |
ToInt | Convert an integer to signed integer. |
ToShort | Convert an integer to signed short. |
ToUChar | Convert an integer to unsigned char. |
ToUInt | Convert an integer to signed integer. |
ToUShort | Convert an integer to unsigned integer. |
VarSetCapacity | When the buffer size of a variable is changed and FillByte is not used and old and new capacity is > 1 byte, the original buffer content is kept/copied to the new buffer. |
WinApi | Use WinApi functions as if it was a build-in function. |
Zip Functions | Various zip functions to compress and uncompress files or data in memory. ZipCreateFile, ZipAddFile, ZipCloseFile, UnZip, ZipCreateBuffer, ZipAddBuffer, ZipCloseBuffer, UnZipBuffer, ZipRawMemory, UnZipRawMemory, ZipInfo, ZipOptions, ZipAddFolder |
Objects | |
ComObjDll | Creates a COM Object from a COM dll. |
CriticalObject | Create multi-thread save object. |
DynaCall | Imports a Dll function and defines its parameters so we don't need to define on each call like in DllCall. |
ObjByRef | Save variables by reference in object. |
ObjDump | Dump an object to memory or file. |
ObjLoad | Load a dumped object from memory or file. |
ObjShare | Create multi-thread save COM IDispatch proxy object. |
Struct | Creates C++ like Structure object that is accessed and modified using object syntax. |
MemoryModule | Allows loading a dll from Memory, e.g. Resource. |
MemoryLoadLibrary | Similar to LoadLibrary but loads a dll from memory. This allows real multi-threading by loading loading a dll multiple times. |
MemoryGetProcAddress | Similar to GetProcAddress for MemoryModule. |
MemoryFreeLibrary | Similar to FreeLibrary for MemoryModule. |
MemoryFindResource | Similar to FindResource. |
MemorySizeofResource | Similar to SizeOfResource for MemoryModuel. |
MemoryLoadResource | Similar to LoadResource. |
MemoryLoadString | Similar to LoadString. |
Variables | |
NULL | New built-in, variable same as FALSE. Resolves to 0. |
A_AhkDir | returns the path of current exe. |
A_IsDll | returns 1 (true) if called from AutoHotkey.dll and FALSE/NULL/0 otherwise. |
A_CoordModeToolTip | returns current CoordMode for ToolTip, 0 = Client | 1 = Window | 2 = Screen. |
A_CoordModePixel | returns current CoordMode for Pixel, 0 = Client | 1 = Window | 2 = Screen. |
A_CoordModeMouse | returns current CoordMode for Mouse, 0 = Client | 1 = Window | 2 = Screen. |
A_CoordModeCaret | returns current CoordMode for Caret, 0 = Client | 1 = Window | 2 = Screen. |
A_CoordModeMenu | returns current CoordMode for Menu, 0 = Client | 1 = Window | 2 = Screen. |
A_DllPath | returns the path of current module (dll or exe). |
A_DllDir | returns the path of current module (dll or exe). |
A_ModuleHandle | Equivalent to GetModuleHandle(NULL) but returns the correct ModuleHandle for AutoHotkey.dll when using MemoryModule |
A_ScriptStruct | returns pointer to internal g_script structure. |
A_GlobalStruct | returns pointer to internal g structure. |
A_MainThreadID | returns ID of main exe or dll thread. |
A_ThreadID | returns ID of current thread. |
A_ZipCompressionLevel | Get or set compression level for Zip functions. Use 0 for lowest and 9 for highest compression. |
Compiling | |
Compiling AutoHotkey | Original
AutoHotkey is only capable to be compiled with AutoHotkeySC.bin. In
AutoHotkey_H any AutoHotkey binary (AutoHotkey.dll,
AutoHotkey.exe, AutoHotkeySC.bin) can be compiled. This allows keeping full functionality of AutoHotkey including executing other scripts. Compiled AutoHotkey.exe and AutoHotkey.dll can use /E switch to execute different script than compiled one. |
Ahk2Exe | Custom version of fincs Ahk2Exe compiler with support for AutoHotkey_H features. |
Resource Library | You can include
library functions in resource of exe or dll (Resorce type must be "LIB", e.g. LIB/WATCHDIRECTORY.AHK). Additionally AutoHotkey.dll can load library functions from exe file automatically (Note both execuables must be using same password if source is encrypted). Note, this is not supported by AutoHotkeySC.bin. |
Resource Compression and Encryption | Ahk2Exe supports compression and encryption for resource files, AutoHotkey will decompress and decrypt the files internally automatically. UnZipRawMemory can be used to decompress and decrypt resources in Script. |
AutoHotkey.dll Module | |
AutoHotkey.dll | AutoHotkey Module with COM support that can be used for multi-threading and allows AutoHotkey to be embedded into another applications. It provides AutoHotkey functionality that might be more difficult to implement in another language. |
Exported Functions | Available for AutoHotkey.exe and AutoHotkey.dll |
ahkIsUnicode | returns 1 (true) to idenitify that dll is Unicode. |
ahkFunction | Call a function via SendMessage method. Mainly used with AutoHotkey.dll to call a function in dll script or call a function in main script from dll. |
ahkPostFunction | Call a function via PostMessage method (does not wait until function returns). Also used mainly with AutoHotkey.dll |
ahkExecuteLine | Executes script from given line pointer. |
ahkLabel | Goto (PostMessage) or Gosub (SendMessage) a Label. Also used mainly with AutoHotkey.dll |
ahkFindFunction | Find a function and return its pointer. |
ahkFindLabel | Find a label and return its pointer. |
addFile | Add and optionally execute additional script/code from file. Not available for scripts compiled with AutoHotkeySC.bin. |
addScript | Add and optionally execute additional script/code from text/memory/variable. Not available for scripts compiled with AutoHotkeySC.bin. |
ahkExec | Execute some script/code from text/memory/variable temporarily. Not available for scripts compiled with AutoHotkeySC.bin. |
ahkassign | Assign a value to variable or pointer of variable. |
ahkgetvar | Retrieve a value from a variable. |
ahkPause | Pause Script. |
Exported Functions | Available only in AutoHotkey.dll |
ahkdll | Load a new thread from a file, current thread will be terminated. |
ahktextdll | Load a new thread from a string/memory/variable, current thread will be terminated. |
ahkReady | Returns 1 (true) if a thread is being executed currently, 0 (false) otherwise. |
ahkTerminate | Terminate thread. |
ahkTerminate | Reload thread using same parameters used with ahkdll or ahktextdll. |
Other | |
ahk_parent | Allow to identify the right window if multiple window with same criteria exist, ahk_parent must be followed by space and Window Id. ahk_parent can be used in any Win... and Control... functions. For example WinActivate, ahk_class #32770 ahk_parent 0x3F4A5 |
& | Retrieve pointer to any String or build in variable like &A_LoopField or &"Text". |
Function Libraries
In addition to the user library in %A_MyDocuments%\AutoHotkey\Lib
,
standard library in the AutoHotkey directory and local library which
resides in %A_ScriptDir%\Lib
functions may be
auto-included from a folder that %A_AhkExeDir%\lib.lnk points to. For
more information, see Libraries
of Functions.
Static Variables
Static variables are saved in separate array internally for better performance. Also ListVars shows static and local variables separately.