AutoIt Projects

AutoIt was the first programing language I ever learned. When I was first introduced to AutoIt, I had absolutely no idea how much fun it is to program. I thought of AutoIt as a simple tool that would help me with some very simple tasks, and not as a tool to help me create awesome programs. It took me almost a year to realize what AutoIt could do and start to use it.


Admin Lock

Download Admin Lock Source Code
Picture of Admin Lock
What is it?

Admin Lock is a simple program designed to lock out unwanted people from using your computer. It is not designed to be a highly secure system that will stop everyone from using your computer. However, it can be used to keep the people you know off of your computer. Admin Lock process kills new processes that are opened while it is open and engaged. To disengage it users have to enter a randomly generated letter and one of the passwords explained below.

  1. 129459789
  2. 149779419
  3. 189189189
  4. 179449719
  5. 159729849
  6. 119119119

At a first glance these number may appear to be random, but they are actually part of a really cool pattern. To generate each row of numbers, take the digits 1-9 and raise them to the power of the column number, and then add all the digits together, until you have a single digit. So for the first row:

1^1, 2^1, 3^1, 4^1, 5^1, 6^1, 7^1, 8^1, 9^1

Now you might be thinking that 3^1 is 3 not 9, and while that is true, the pattern repeats infinity every 6 powers, and when it repeats starting with the x^7. However, it is much easier to think about if, you ignore the first change in the first row. The second row is then:

1^2, 2^2, 3^2, 4^2, 5^2, 6^2, 7^2, 8^2, 9^2

(1=1), (4=4), (9=9), (1+6=7), (2+5=7), (3+6=9), (4+9=13, (1+3=4)), (6+4=10, (1+0=1)), (8+1=9)

I found the above pattern to be very interesting, and very easy to memorize, so I wrote it into Admin Lock as an array, of possible passwords. Admin Lock would then choose a random letter and a random number between 1-6 for the 6 different passwords in the array.


Auto Computer

Download Auto Computer Source Code
Picture of Auto Computer Picture of Auto Computer
What is it?

AutoComputer is a simple organization tool designed to allow users to organize their files and programs. AutoComputer uses an input-box menu interface which allows users to quickly type in numbers to open files or programs. AutoComputer uses a small script called Hibernate which allows users to press a key on their keyboard and quickly open up the AutoComputer menu.

History

AutoComputer was my first program project in any language. At the time that I wrote it, I did not understand how to make a large program, or what UI even meant. The first version of AutoComputer had file and program paths written directly into the program. To make changes I had to go change the code of the program and then re-compile.

Eventually after a while of going in and changing the code of the program, I began to realize that what I was doing was terrible and that there had to be a better way to make changes to my data. I found INI files and found that AutoIt was able to easily make changes to INI files. I began to use INI files to store all program data. AutoComputer had then grown into a program that could store and retrieve data.

Shortly after this I learned that users generally enjoy have a user interface to work with that does not involve looking up menu numbers to type in. I tried to think of a way to add a UI that people would like, but at the time I was strongly apposed to the idea of GUI. I ended up not improving the UI, because I the time I thought that if I was going to go to all the trouble of writing a program I should have the ability to decide if you should enjoy using it.

I eventually rewrote AutoComputer in VB.NET and added a UI to it. To see several different versions of my AutoComputer program written in VB.NET visit the VB.NET Projects page.


ClipBoard Extension

Download ClipBoard Extension Source Code
Picture of ClipBoard Extension
What is it?

ClipBoard Extension is a background program that extends the functionality of the windows clipboard. While ClipBoard Extension is open, whenever users use the CTRL+c/v keys (Copy and Paste) ClipBoard Extension pulls string data out of the clipboard and stores is. When users then use the paste feature, a window opens up with a list of string data that has been previously copied. By simply clicking one of the items in the list, the data is pasted in, where ever the user wants it.

History

I originally wrote ClipBoard Extension in VB.NET. I switched over to AutoIt because I was having problems with some API calls that I needed to be able to listen to the CTRL+c/v commands. AutoIt however, has easy to use built in functionality with the HotKeySet command. Interestingly I ran into the complete opposite problem with AutoIt than I did with VB.NET. Having used VB.NET for several years I had grown used to the feel of how my code will reflect my UI at run time. In AutoIt, I had no idea what my UI would look like until I tested it. It is because of the lack of UI control that I abandoned this project. In VB.NET I did not have the control I needed with the copy and paste commands, and in AutoIt I did not have the control I needed with UI.


AutoIt Macro

What is it?

I recently worked on a very complicated macro in AutoIt. The macro needed to pull text information off of a PDF document, transfer it into another application, and then press several keys, and click in several locations. The macro worked with proprietary data, and because of that I cannot share screen-shots of it, or include the code that made it work. However, I leaned a lot about how to write macros with this program. I learned how hard it is to take an image of data on a screen and create a program that can find that data on computers with different settings. I also found it hard to deal with the speeds of different computers. If the computer I tested the program on was faster than other computers the program would run on, my program could fail, so I learned that I had to get more information from the computer by checking pixels in certain regions to look for changes to data.