# AutoIt and Developer History

This section is for those interested 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 waited 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 development 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 spiraling well out of control AutoIt v3.0.100 was finally released.

Jon :)

## Larry

Early 2001 started my own automated roll out 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 roll out process, scrapping all other means and focusing on an "All-AutoIt" solution.

We all hung out on the Yahoo AutoItList group at that time. I had a lot 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.

## Jos

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 moderator 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 (now known as Au3Stripper) 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 useful 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 regression 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 ;)