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