You are on page 1of 8

Automate your work with Autohotkey

Search
Search

Help Tips Dictionary History Forums Contact

Share You are here: Tips > Software Tips

Automate your work with Autohotkey


16

Autohotkey is a free and powerful tool that allows you to automate almost anything on
your Windows computer in any program. Computer Hope uses this tool daily to help
answer common questions asked in e-mail quickly and perform other common
repetitive tasks. If you do anything daily that requires you to repeat the same actions,
we highly recommend using this tool. This page demonstrates some of this programs
capabilities.

Caution: This tool can be


used to automate tasks in gaming, some online games may
consider this cheating and if caught it may result in a ban.

If you want to follow along with this documents examples, please download and install
Autohotkey
before following any of the steps below. Otherwise, skim this document for a
better understanding of the program before downloading and installing it on your computer.

Edit the script


Script basics
Creating your first script
Scripting the mouse
Run a program
Using variables
Conditional statements
Creating a loop
Regular expressions

Edit the script


After Autohotkey is installed to create and edit a script
right-click anywhere on the Desktop or folder, click New,
and choose AutoHotkey script. Name the script
whatever you want and then right-click the script file and
choose Edit the script.

Tip: If you plan on always using the same scripts you can
also load AutoHotkey at startup, right-click the
AutoHotkey icon ( ) in the Windows notification area, and
click Edit this script.
The default script (AutoHotkey.ahk) Back to Top
opens in your default text editor and allow you to add or

http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]
Automate your work with Autohotkey
change your own scripts. Each time Autohotkey loads
when your computer starts this default script will load this
script.

Script basics
Each script in Autohotkey can also be assigned a keyword (hotstring) or a personalized
keyboard shortcut key.
When using a keyboard shortcut any shortcut can be used as
long as Windows has not already assigned those keys to another task. Each shortcut key
can be comprised of the Windows key represented as a "#", an Alt key represented as a
"!", a Ctrl represented as a "^", and any other letters, numbers, or other keys on the
keyboard followed by two colons (::).

Autohotkey includes two example scripts, the first one (shown below) opens the
Autohotkey web page when you press the Windows Key and Z at the same time. Which
can be done now if you have Autohotkey installed and the default autohotkey.ahk
loaded. Otherwise, this line can be added to a new script, saved, and ran to allow this
shortcut to work.

#z::Run www.autohotkey.com

Most scripts will be more than one line. However, in the above example, it is only one
line and needs no additional commands. In the below script example, the script has
multiple lines, and as can be seen must be finalized with the "return" command to
prevent anything below this script from being executed.

^!n::
IfWinExist Untitled - Notepad
WinActivate
else
Run Notepad
return

The above script starts with the shortcut key Ctrl + Alt + n, the next four lines are an if
else
command, which in English translate to "if an untitled Notepad window exists then
make that window active, else run a new Notepad."

Creating your first script


With your basic understanding of how this program works lets create your first script to
print "Hello World!" anywhere you
want. Move the cursor to the end of your new script
file or the default
Autohotkey.ahk script file and add the below line.

::Hello::Hello World{!} This is my first script. ;Example comment

In this first example, we are not using a shortcut, only the keyword "hello" to execute
the script. Also, because "!" is a modifier key command for the Alt key it has been
surrounded by curly brackets, which indicates the key, not a command. Finally, this
script also contains a comment at the end, which is anything followed by a semicolon. All
comments are ignored and used to help explain the code in the script.

http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]
Automate your work with Autohotkey

Any time you make any changes to a script it must be reloaded or run for those changes
to work.

To load the script double-click the script file or right-click the script file and choose Run
Script.
If you're editing the default autohotkey.ahk and Autohotkey is running reload the
script by right-click on the Autohotkey icon ( ) in the Windows notification area and
choose the Reload This Script option.

Once the script has been loaded you should be able to type "hello" in the below text box
and after pressing space or any punctuation the script type out "Hello World! This is my
first script."

Tip: If you don't want to have to press the space or punctuation you can add an
asterisk between the two first colons.

Next, in the example below we are creating a script


that is executed with a shortcut key.
Edit the script and add the below
three lines to your script.

#F2::
send Hello World{!}
return

After these three lines have been created save the file as the same file name and then
reload the script. If done successfully you should be able to click in the below text box
and press
the Windows Key + the F2 function key at the top of the keyboard to print
Hello World!

Any shortcut keys


can also be added, data can be copied to and from the clipboard, and
the script can sleep for any amount of time. Edit the script again and make the below
changes to the script created earlier.

#F2::
send Hello World{!}
send {CTRLDOWN}{SHIFTDOWN}{HOME}{CTRLUP}{SHIFTUP}
send {CTRLDOWN}c{CTRLUP}{END}
example = %clipboard%
StringUpper,example,example
sleep, 1000
send, - new hello = %example%
return

In the above example, lines three and four have introduced how keys can be pressed in

http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]
Automate your work with Autohotkey
the script to perform other keyboard shortcuts. The third line this is pressing
Ctrl+Shift+Home to highlight all text before the cursor, and the next line is pressing
Ctrl+C to copy the highlighted text. Anytime a key is pressed down (e.g.
{CTRLDOWN})
make sure it is let go with up (e.g. {CTRLUP}), otherwise it will remain down and cause
problems.

The fourth line introduces a variable and the %clipboard% command which contains
anything in your clipboard. With this line, all contents in the clipboard are assigned to the
"example" variable.

The next command is making the example variable all


uppercase by using the
StringUpper command and assigning the uppercase text back to the example variable.
The StringLower command could also be
used to make everything lowercase.

Next, the sleep command is a great command for making the script sleep for any length
of time. 1000 is equal to 1 second. This command is useful and often necessary if the
script has to wait for the computer to open a program or window.

Finally, the last send command will add " - new hello =" with the hello world now all in
uppercase. This revised version
of the script can be tested again in the below text box.

Scripting the mouse


Although
almost anything can be done using keyboard shortcuts,
there are still times you may want to click somewhere on the
screen. Using the click command you can click on any location of
the screen as shown in the example below. To determine what
the location of where you want to click
use the Window Spy
utility that can be opened by right-clicking the Autohotkey icon (
)
and clicking Window Spy. As you move your mouse, the "In
Active Window"
displays the location of your mouse cursor's
current position. Once you've determined where you want to
click add the Click command with the
location of where you want
the mouse to click.

#F2::
Click 980,381
return

With this command once the Windows key + F2 is pressed the mouse will click once at
980,381.

Run a program
If there is a program you run often, opening a program in a script can be as simple as
typing run and the name of the file you want to run. Earlier in this document we gave an
example of how
to run Notepad by typing "run notepad" in the script. If you're familiar
with the Windows Run,
many of the same commands and ways you run a program or
open a file will work in AutoHotkey. Below are some additional examples of what the run

http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]
Automate your work with Autohotkey
command can do in AutoHotkey.

Run, wordpad.exe, C:\My Documents, max

In the first example, this would open WordPad with the default directory C:\My
Document, and open the window maximized.

Run, www.computerhope.com

Any Internet URL can be added after the run command to open that web page in your
default browser.

Run, mailto:example@domain.com?subject=My Subject&body=Hello this is a body example.

Finally, this is yet one other example of the run command, which is sending an e-mail
using your default e-mail client and
sending the e-mail to example@domain.com with the
subject "My Subject" and the body of the message having "Hello this is a body example."

Using variables
Like other programming and scripting languages, AutoHotkey supports the use of
variables
in the script. As seen earlier, we demonstrated copying the clipboard contents
to a variable. A variable in AutoHotkey can be either a string or an integer and does not
need to be declared like other programming languages.

In our first example, we will be using an integer variable to add two numbers together
and display the results in a message box.

#F2::
example := 5+5
msgbox, Example is equal to %example%
return

In
the above example, "example" is our variable name, := is
assigning the integer expression as the value of 5+5 (10). Once
the variable has been assigned we are using the msgbox
command to open a message box and print
its value. Whenever
you are sending, printing, or assigning a variable it must begin
and end with a percent symbol. After saving and reloading the
above script when pressing Windows key + F2 you should see a
message
box similar to the example shown on this page.

In the next example we are assigning the variable a string value and again having the
results displayed in a message box.

#F2::
example := "Nathan"
msgbox, Hello World! My name is %example%

http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]
Automate your work with Autohotkey
return

In the above example, we are assigning the example variable to "Nathan" and because it
is a string it must
be surrounded in quotes. When pressing the Windows key + F2 this
time the script opens a message box saying "Hello World! My name is Nathan".

If you wanted to have a variable with a string and an integer you can have an expression
outside the quotes, as seen in the
example below.

#F2::
example := "Example: " 5+5
msgbox, Mixed variable is %example%
return

When executed, the message box displays "Mixed variable is Example: 10"

Conditional statements
Conditional statements are also supported with AutoHotkey and support the operators
and (&&), or (||), and not (!). Below are a few examples of how conditional statements
can be used.

#F2::
example := 5
if example = 5
msgbox, true
else
msgbox, false
return

In the above example, the variable is assigned a value of 5 and the conditional
statement checks to see if the example is
equal to 5 because this is true the msgbox will
print true. If the example value was not equal to 5, the msgbox would have returned
false.

You would think after seeing the first conditional statement example that you could put
quotes around a string in the variable and conditional statement; however, this will not
work. If you want to match a string, surround your expression with parentheses as
shown in the example below.

#F2::
example := "computer"
if (example = "hope")
msgbox, true
else
msgbox, false
return

In the above example, if the example variable is equal to hope, print true, otherwise
print false. Because the example variable has been assigned as "computer" this script
http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]
Automate your work with Autohotkey

returns false.

Creating a loop
If there is a script that you want repeat, place the script into a loop, as seen in the
example below script.

#F2::
loop, 5
{
send Hello World{!}
sleep 300
}
return

Once the above script has been added and the script
has been re-loaded or ran you
should be able to click in the below text
box and press the Windows key + F2 to print
Hello World! five times. The loop can be extended to repeat as many times as you want.

Regular expressions
Like other scripting languages, AutoHotkey also supports the use of regular expressions
(Regex),
which allows you to replace any text within a string with other text. This is
useful for times you may want to change the formatting of text or remove unnecessary
data within a string.

#F2::
example := "support@computerhope.com"
example:= RegExReplace(example, "@.*", "")
msgbox, Username is %example%
return

In this above example, the third line with RegExReplace will replace the @ and
everything after it with nothing making the example variable only show the username
account of the e-mail
address. When Windows key + F2 is pressed the message box
displays "Username is support".

Additional information
Visit the Autohotkey dictionary for a full listing of available Autohotkey commands.

http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]
Automate your work with Autohotkey

Feedback E-mail Share Print


Was this page useful? Yes No

Search

Search

Recently added pages Useful links Follow us


Dyn company and contact information. About Computer Hope Facebook

What are all the symbols used by computers? Site Map Twitter

When was the first keyboard invented? Forum Google+


Pinterest
What is the difference between Internet and intranet? Contact Us
YouTube
How do I change the size my Windows mouse cursor? How to Help
RSS
View all recent updates Top 10 pages

2017 Computer Hope


Legal Disclaimer - Privacy Statement

http://www.computerhope.com/tips/tip209.htm[10.01.2017. 13:35:18]

You might also like