Skip to content
This repository

AutoHotKey.dll

branch: master
README
07.10.2012
- Merged latest AutoHotkey_L changes from https://github.com/Lexikos/AutoHotkey_L.
- 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 https://github.com/HotKeyIt/Ahk2Exe to compile using compression
- - Many thanks to SKAN for VarZ http://www.autohotkey.com/community/viewtopic.php?p=276616#p276616
17.08.2012
- 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
09.08.2012
- Merged AutoHotkey_L 1.1.08.01
- 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.

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

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

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

15.08.2010
- 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.

12.08.2010
- 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.

18.07.2010
- 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.()

16.07.2010
- Fixed not to delete ClipBoard vars when ahkdll is reloaded

11.07.2010
- Merged latest fixes by tinku99

19.06.2010 - H17
- Merged with AHK_L52

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

27.05.2010
- 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.

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

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

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

13.02.2010
- ResourceLoadLibrary for AutoHotkeySC.bin

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

07.02.2010
- 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 http://www.joachim-bauch.de/tutorials/load_dll_memory.html
- - 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.

03.02.2010
- Unicode

18.01.2010
- 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….

30.12.2009
- 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.

21.12.2009
- 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.

19.12.2009
- fixed addScript bugs
- created ahktextdll

18.12.2009

- 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 

17.12.2009

- 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.