Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
C++ C Other
branch: master
Failed to load latest commit information.
source Fix compression and encryption for ANSI
AutoHotkey.sln Update configuration files
AutoHotkey.vcxproj Update config files
AutoHotkey.vcxproj.filters Update config files
ComServer.def Enabled COM Interface for AutoHotkey.dll (only)
Config.vcxproj Enabled COM Interface for AutoHotkey.dll (only)
How to compile.txt Merged, Split static and local vars, Build-in Struct() + si…
PostBuildSC.ahk DynaCall Objects + L48
license_AutoHotkey.txt Merged AHK_L53, now with com and x64 support and some improvements


- Merged latest AutoHotkey_L changes from
- OnMessage accepts optionally a window handle now, e.g. OnMessage(0x200,hwnd,"WM_MOUSEMOVE")
- - this allows to have separate function for each window or launch the function for specified window only.
- fixed to launch default script if parameters in ahktextdll and ahkdll functions are missing completely.
- small fix for Struct() string data handling.
- Enabled compression for compiled scripts, use to compile using compression
- - Many thanks to SKAN for VarZ
- Fixed to use alignment for all types and also in 32-bit environment
- Fixed pointer handling in some cases
- To set Pointer in main structure you will need to use struct["",""]:=ptr
- Merged AutoHotkey_L
- Fixed a bug in ahkFunction, variables were not freed.
- Fixed freeing some internal variables on restart or ExitApp in AutoHotkey.dll.
- Fixed OnMessage was not correctly handled on reload and ExitApp in AutoHotkey.dll.

- Static variables are now saved separately from local variables
- - When a function uses many static variables the time used to call the function is greatly improved.
- - This is because only local variables need to be freed and we do not need to check if a variable is static.
- - ListVars also shows static variables separate from local, this also helps debugging.

- New Build-in functions
- - Struct() and sizeof(), see manual for usage.

- ResourceLibrary
- Removed ahkKey
- FileInstall for Scripts compiled with AutoHotkey.exe
- Allow pure integers (pointers) for DllCall and DynaCall "Str" prameter.

- Merged latest MemoryModule
- Fixed x64w build AutoHotkey.dll also works fine using COM

- Fixed ahkFunction returning wrong value
- Default script set to #Persistent`n#NoTrayIcon
- Fixed ahkExec to return when no line was added

- Merged AutoHotkey_L54
- DllCall will now always search for W and A functions first, this is due to some functions do not have A suffix e.g. Process32First and Process32FirstW
- when empty string is passed to ahkdll function, it will run in text mode same as ahktextdll so it will run "#Persistent".
- ahkLabel second parameter is called nowait now so when 0 (default) AutoHotkey will wait for code to finish execution, because using PostMessage times out often when CPU is under load.

- Merged AutoHotkey_L Revision 53
- new exported function ahkExec used to temporarily run some script, accepts also several lines of code
- when empty string is passed in first parameter, AutoHotkey will run "#Pesistent" as script.

- Fixed a bug for dll when it was in root folder
- DynaCall is now managed trough internal DynaToken, similar to objects but without object features and much faster but can be used with DynaCall only (thanks Lexikos)
- DynaCall can set default parameters now, so you can call the function later with less or even witout parameters: func.()

- Fixed not to delete ClipBoard vars when ahkdll is reloaded

- Merged latest fixes by tinku99

19.06.2010 - H17
- Merged with AHK_L52

- Fixed addScript and addFile loop bug
- Fixed ahkFunction bug when returning empty parameters and strings

- Fixed when terminating dll not to destroy Build in variables
- Fixed problem when dll reloads, now parameter strings given to ahkdll and ahktextdll are copied and not used.

- Fix for Alias BIF
- Multithread support for Input command, see other changes in docs.

- Merge AutoHotkey_L Revision 50
- DynaCall fix, *pP parameter was not initialized correctly

- DynaCall returns Objects now.
- You can use object features like dll.ahkgetvar.var or dll.ahkFunction["func"] or dll.ahkassign.var := value

- ResourceLoadLibrary for AutoHotkeySC.bin

- fix for A_DllPath
- fix on DLL_PROCESS_DETACH invalid hThread (MemoryFreeLibrary works fine now)

- fixed ahkFunction
- added ahkPostFunction same syntax as ahkFunction but returns unsigned int 0 if func found, else -1
- ahkPostFunction and ahkFunction parameters are all optional now.
- ahkFunction and ahkPostFunction use now a CRITICAL_SECTION to avoid collision
- SendMode Input is default now.
- #NoEnv is default now, use '#NoEnv, Off' to turn off
- fixed ahkExecuteLine to run when lastline is given
- ahkLabel returns 0 if Label found else -1
- added ahkFindLabel
- ahkTerminate will now try (for 500ms) to stop the thread via PostMessage before running TerminateThread.
- EXPERIMENTAL New build in functions: MemoryLoadLibrary - MemoryGetProcAddress - MemoryFreeLibrary
- - Based on
- - So now multithreading is even easier as only 1 dll is needed.
- - Hook does not work currently.
- DynaCall, runs faster than DllCall and uses internally saved array of DllCall structures based on functions pointer.

- Unicode

- fixed MsgSleep to work after termination and reload.
- enabled #Persistent so a script that does not use #Persistent will terminate (use ahkdll ahktextdll or ahkReload to run it again).
- Send commands support inline sleep now when pure digits are specified, like Send a{30}{Tab}b{100}{Enter}. Send {9} will not sleep but send 9.
- Reload, Exit and ExitApp works like they should now for the dll.
- Added 2 new stdlib folder, which is the parent folder of A_AhkPath + Lib.lnk in same folder if it links to a directory.
- - - Directory of A_AhkPath, so now stdlib functions can be placed in same folder for simplicity.
- - - Additionally you can specify a link file in same folder (Lib.lnk) to your stdlib instead of copying the files for a portable project (e.g. on a ram drive!).
- ahktextdll and addScript support loading functions from all 4 libraries now as well.
- AutoHotkey.exe started without parameters checks for following files:
- - 1 %A_AhkPath%\..\[Name of executable].ahk 
- - 2 %A_AhkPath%\..\[Name of executable].ini
- - 3 %A_MyDocuments%\AutoHotkey.ahk
- - - REMINDER: portable mode = copy + rename AutoHotkey.exe to e.g. MyScript.exe and put it together with MyScript.ahk or .ini in same folder.
- No need to call ahkTerminate before calling ahkdll or ahktextdll, it will terminate automatically if a script is running.
- New AhkDll function - AhkDll(dllfile,function,p1,p2...), using static pointers to functions, executes around 5 times faster. 
- - Loads dll library automatically so no need to call DllCall("LoadLibrary"...)
- - Dllfile must contain only characters valid for a variable in ahk [a-zA-Z0-9_#$@]!
- - Functions are all case sensitive!
- ahkgetvar has now a further parameter (UInt), when this parameter is not 0, the pointer of the variable will be returned to use with Alias(), else value is returned

- New AutoHotkeyMini.dll uses a preprocessor and excludes many commands to support much faster load/reload and less memory usage. 
- Following commands are disabled/removed:
- - Hotkey (as well as Hotkey + Hotstring functionality), Gui…, GuiControl[Get], Menu…, TrayIcon, FileInstall, ListVars, ListLines, ListHotkeys, 
- - KeyHistory, SplashImage, SplashText…, Progress, PixelSearch, PixelGetColor, InputBox,
- - FileSelect and FolderSelect dialogs, Input, BlockInput MouseMove[Off], 
- - Build in variables related to Hotkeys and Icons as well as Gui, A_ThisHotkey…, A_IsSuspended, A_Icon….

- ahkReload will reload a script, this can be also done by the script as well as ExitApp.
- ahkPause, get and set Pause state of current thread in dll script (dll only)
- ahkExecuteLine, execute a line by passing its pointer, a pointer is returned by addFile and addScript as well as by this function.
- - when no pointer is given, FirstLine pointer is returned, else pointer to next line is returned.
- changed ahkgetvar to return a value rather than passing a variable, so no need to VarSetCapacity anymore.
- fixed ahkFunction ( now using callFuncDll() ) to continue main script after function call.
- fixed to wait for thread to initialize and return then, as well as when script crashes while initializing.
- addScript will not reset previous script anymore.
- removed const for HotkeyIDType Hotkey so sHotkeyCount can be reset for ahkTerminate.

- ahkTerminate, after terminating your script you can reload it using ahkdll or ahktextdll.
- script, incl. labels and functions, and hotkey destruction and reload now possible.
- a bug in ahkFunction was fixed.

- fixed addScript bugs
- created ahktextdll


- addScript loads script from text, second parameter is to replace current script
 DllCall(A_AhkPath "\addScript","Str","a:`nMsgBox a`nReturn","ushort",1,"Cdecl UInt")

- \ahkdll function will now load text if specified file does not exist

- no need for #Persistent in AutoHotkey.dll 


- Changed to "Portable Mode"
	- Instead looking for %My_Documents%\AutoHotkey.ahk, the exe checks for %ExeDir%\ExeName.ahk. 
	- So you can copy AutoHotkey.exe and Script to separate folder then rename the exe to ScriptName.exe and start by double clicking the exe. 
	- You can also start new scripts using your exe that way. 
	  e.g. Run YourExe.exe "%filepath%"

- Changed ahkgetvar to support alias and build in variables. 
- Removed ebiv.cpp because ahkgetvar can be used to get any variable beside clipboard and clipboardall 
- Changed ahkFunction to support up to 10 parameters + return values
Something went wrong with that request. Please try again.