Fixed: Certain paths like @WindowsDir were incorrect under Windows Terminal Server Fixed: FileSetTime() systems in non-GMT timezones had incorrect results Fixed: FileMove() with UNC paths (does a real move when in the same dir rather than a copy). Fixed: ^ operator Fixed: Chr() Fixed: StatusBarGetText() failed when used with no "Text" parameter Fixed: InputBox() didn't return focus to the previously active window Fixed: ACos() bad result. Fixed: Under certain conditions, GUICtrlSetPos() could cause a label to appear as if it had been painted multiple times. 4th Aug, 2004 - v3.0.102 Major Change: Colors now default to the standard RGB format rather than the previous BGR format. This affects PixelSearch() and PixelGetColor(). The "ColorMode" option has been added to allow old scripts to run with the old BGR mode, just place this line at the top of your script to use the old method, e.g.: Opt("ColorMode", 1) If you use color functions in your code you MUST take notice of the above change and either change the colors in your code OR add the Opt ColorMode option as shown above. This especially affects BOTs and code that interacts with games. Added: DriveMapAdd(), DriveMapDel() and DriveMapGet() Added: @SW_SHOWDEFAULT, @SW_SHOWMAXIMIZED, @SW_SHOWMINIMIZED, @SW_SHOWMINNOACTIVE, @SW_SHOWNA, @SW_SHOWNOACTIVATE, @SW_SHOWNORMAL Added: FileGetShortcut() Added: Predefined $CmdLineRaw variable now holds the original command line in full Added: @DesktopDepth Added: ReDim Added: More command line params for Aut2Exe.exe: /nodecompile and /comp 0-4 (compression level, 4=best) Added: Process ID (PID) support for Process () and Run() functions Added: ProcessSetPriority() Added: Decompiler (Exe2Aut) added Added: PixelChecksum() Added: Strings starting with "0x" are converted from hex when used numerically Added: MouseWheel() Added: RegEnumKey() and RegEnumVal() Added: FileRecycleEmpty() Changed: TimerStart() renamed to TimerInit(). TimerStop() renamed to TimerDiff() Changed: FileSelectFolder() flag parameter changed Changed: REG_MULTI_SZ values in Reg () functions allow double NULL values Changed: BitOr(), BitAnd() and BitXOR() take up to 255 parameters Changed: Icon and windowstate options added to FileCreateShortcut() Changed: RunAsSet() supports extra profile handling options Changed: RegWrite() now accepts just the keyname in order to create a keyname with no value Changed: "Allow Decompilation" option added to Aut2Exe Changed: Aut2Exe gives feedback during compilation and gives the option to abort Changed: Compiled scripts run/extract much faster when using FileInstall and medium/large files Changed: Max number of user function limits removed Changed: Max number of variable limits removed Changed: -1 does no sleep at all for Send/Mouse delays (SendKeyDelay, etc ) Changed: Optional occurance parameter added to StringInStr() Changed: Optional default filename added to FileOpenDialog() and FileSaveDialog() Changed: Registry functions accept 4 letters keys (HKLM instead of HKEY_LOCAL_MACHINE, etc.) Changed: Remote registry keys are accepted in the form "\\computername\key\subkey" Changed: AutoItSetOption returns the previous setting Fixed: FileGetSize() works on >2GB files and in-use files Fixed: The expression: If "non-blank" And 1 - now evaluates as true Fixed: ToolTip() when the mouse is near the bottom of the screen Fixed: StringIsDigit() Fixed: Process () functions under NT4 unable to see certain processes Fixed: Some keywords incorrectly allowed after a THEN keyword 11th Mar, 2004 - v3.0.101 Added: MemGetStats() Fixed: Windows 95a compatibility Fixed: Minor help file typos 29th Feb, 2004 - v3.0.100 Initial release AutoIt and Developer History This section is for those interesed in how the AutoIt project began, and how the various developers got involved. Devs should add their own thoughts when they get time :) Jon October 1998 I was working on a project to create an automated Windows NT 4 build for a company in the UK. It became clear that around half the applications required featured no way to silently install them. Searched around for a while for some way to force button presses and came across Microsoft ScriptIt which was a compiled WinBatch script designed for clicking buttons in automated builds. ScriptIt worked OK but it was extremely unreliable. It was notoriously fussy about the speed of the machine it was used on and had no way to control the key delays between keystrokes. Another feature that caused problems was that there was no way to specify a working directory when running a program which caused loads of problems with many of the applications I was scripting. Also, some of the functions didn't work under NT 5 beta (i.e. Windows 2000). Xmas 1998 To escape the torment that was Xmas I decided to have a go at a C program that would send keystrokes hoping that I could then control the delay. January 1999 AutoIt version 1 released on the old winfiles.com site. Syntax was similar to ScriptIt (for Send) and featured the functions Send, Run, RunWait, WinWait, WinWaitClose, WinWaitActive, WinHide, WinActivate, WinClose, WinRestore, Sleep and SetKeyDelay. From the v1.0 helpfile: Advantages - It's much smaller at 40Kb (600Kb smaller than ScriptIt). - It will be updated if problems are found. - The "Reveal" function is much better. - Non-active as well as active windows can be waitied for. - Variable delays are possible (defined in milliseconds). - The time in between keystrokes can be altered. - When running an application, a working directory can be specified. - Will force Windows to be active under Win98/NT 5.0 (Use "WinActivate") Disadvantages - The "[ADLIB]" section is not implemented - The script file must be formatted correctly (no white spaces allowed on lines containing a command). - None of the Wilson WinBatch commands are featured. (But who used them anyway? ) - Due to the command names I've used, the scripts tend to be a little larger. January - April 1999 Numerous versions released up to v1.8 with features like: - Cool /reveal mode - Goto! - IfWin - Mouse control - ScriptIt ADLIB-like support - Gosub - %ENV% variable support August 1999 AutoIt v2 released. First version of AutoItX created. September 1999 AutoIt v2.1 - First version of Aut2Exe created. September 1999 - May 2001 Numerous versions and number of functions increasing at a massive rate. Basically, if someone asked for a function I stuck it in there. The problems this caused is why we don't give in all the time any more. May 2001 AutoIt source code was a total mess. Entire source rewritten in C++. January 2002 AutoIt v2.62 - First version of Exe2Aut created (boo hiss) First version of AutoItDLL created. December 2002 AutoIt v2.64 - last version of AutoIt v2. FileInstall function added after writing my own compression and archive library. January 2003 Very little development was done from 2001 to 2003. Project had reached the point where I'd lost the will to work on it. The source code was a mess again because in this sort of project you tend to add on every function that everyone wants without thinking about the future. The AutoIt v2 syntax was really horrible. Half the requests I got were for proper loops and expressions - half of the questions were "how do I use a backslash in a Run command". Arrgh. In this time there were numerous "add-ons" like Aut2xtra created by Larry that allowed the use of some of the missing functions from AutoIt (because I hadn't the time or motivation to add them). IIRC Larry suggested that he was frustrated with the lack of development and suggested writing a new version. I decided that if a new version was wanted then it should be more like a "proper" language. I started the developement framework for AutoIt v3. Previous versions were very strict about syntax it was "Command, param1, param2, " and it took about a month to come up with something that could read in a line containing complex expressions (a whooooole lot of googling required). Although I "get" it now, writing the expression code in AutoIt was the 2nd hardest thing I'd ever done. (Hardest thing I've written was the compression code used in Aut2Exe that I wrote from scratch ) Most of the current devs starting helping out soon after this point. I forget when each person starting helping so hopefully they can fill in here. March 2003 First public beta binary of AutoIt v3 (after lots of talk) released. February 2004 After over 100 beta versions and development spirialling well out of control AutoIt v3.0.100 was finally released. Jon :) Larry Early 2001 started my own automated rollout of WinNT systems. I found that the previous curator used an AutoIt script to handle some interaction. Fascination I expounded on the control that AutoIt had in the rollout process, scrapping all other means and focussing on an "All-AutoIt" solution. We all hung out on the Yahoo AutoItList group at that time. I had alot of free time at work (thanks to AutoIt) and paid much attention to the AutoItList. Jon noticed my dedication and allowed (allows) me to moderate/maintain that group. Although, I haven't looked at the files section, much, in years. By 2003, I pushed AutoIt to its limits, so began to learn C to create command line utilities (including GUI, AutGUI.exe) to use with AutoIt. Then I started to threaten everyone with trying to create a "next-generation" of AutoIt. I got about 2 days into coding a script parser and (I think) Jon got nervous about how horrible my fumbling was, and how feeble a product might ensue. So, he saved me and decided to dedicate his own efforts. I think Jon and I have some of the same priorities, so he crowned me the original moderator of the AutoItScript forum. Subsequently, in appreciation of my laziness and with commendation to the dedication of others he began to dole out responsibility. One of my frustrations with the AutoIt community, or just in freeware in general, I guess, is that the efforts and hours will never truly be appreciated. I am only fueled by pride in this endeavor. Lar. JdeB I have been using AutoIt since ver 2 Started to become more active on the old forum just before moving to this new forum. Started to offer help on things like: - Helpfile creation automation. - Made opening the Helpfile for AutoIt3 Functions and Keywords (F1) work from within Editors like Crimsom/TextPad/SciTE. Wrote a bunch of UDF's. Wrote Tidy in Autoit3 syntax as way to learn AU3. This is now BCX - C because I wanted it to be faster. Started developing the AutoIt3 Lexer for SciTE and submitted that for inclusion in SciTE v 1.60. Started the SciTE4AutoIt3 Installer package to make a single installer for all the goodies developed by others and myself and created the Helpfile for it. Wrote AutoIt3Wrapper to allow easy access to both Production and Beta version of AutoiT3 and allow Compiler Directives for Updating the output programs resource information. Started the SciTE4AutoIt3 Sub-Website when SciTE became more popular. Became Mod when too many (how do I say this politely) script kiddies started to terrorise the forums and Jon didn't always have time to be around and Larry living in a different timezone. Wrote Obfuscator which is a based on Tidy's sourcecode to make script somewhat unreadable. Jos :) Valik A long time ago I found a Diablo II bot. For whatever reason (Probably to fix something), I learned it was written in AutoIt so I came to the site to get the program. Around the time Jon started work on v3 I started learning C++. Once the v3 beta's were released I started porting some of my old scripts to v3. Eventually I either find problems or wanted features and since the source to AutoIt was available at that time and I was learning C++, it seemed like a good idea to contribute. As for becoming a moderator, much like JdeB, I grew tired of the stupidity on the forum. Jpm I cannot remember when I found AutoIt - but it was a simple yet powerful script language. I use it a lot to automate the reinstall process of my Windows Beta testing so that I can have the same environment (system and user) every time. I was able to install it while doing something else. The process was very slow with a 200Mhz machine So up until March 2003 I decided to help French people doing the French translation of the V2 version. At this time the Autoit source code V3 was available so I decided to learn more about C and the Windows API. I wrote the converter V2 to V3 to convert my scripts - it doesn't seem so usefull today but at least my C code learning was improving. I participated in some improvements to help automation of any windows version or any OS language. I created a test AutoIt non regresssion suite to help our internal process of delivering good beta versions. I was so fond of having GUI creation that when Larry start his AU3GUI project, I decided to integrate it into the V3.0 version. At the time Jon was so busy outside AutoIt so I looked after bug reports and beta versions. I try to manage the BUG report forum as much as I can and to identify/integrate the improvements that I love and that I can implement JP ;) . learning was improving. I participated in some improvements to help automation of any windows version or any OS language. I created a test AutoIt non regresssion suite to help our internal process. ADLIB-like support - Gosub - %ENV% variable support August 1999 AutoIt v2 released. First version of AutoItX created. September 1999 AutoIt v2.1 - First version of Aut2Exe created. September 1999. more. May 2001 AutoIt source code was a total mess. Entire source rewritten in C++. January 2002 AutoIt v2.62 - First version of Exe2Aut created (boo hiss) First version of AutoItDLL created.