AutoHotKey is a free, open-source utility for Windows. It is available at
AutoHotkey. The program is not banned by Blizzard. However, several of its abilities are prohibited by Blizzard so use it wisely.
With AHK, you can:
- Spam a spell or macro by holding down a single key
- Control characters on multiple accounts
- Automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or use the macro recorder.
- Create hotkeys for keyboard, joystick, and mouse. Virtually any key, button, or combination can become a hotkey.
- In addition to the typical Control, Alt, and Shift modifiers, you can use the Windows key and the Capslock key as modifiers.
Guides
Duel-Boxing.com:
The Guide
Frequently Asked Questions
* How is it different than the Logitech G15 Keyboard?
It's free. The keyboard is $80.
* Since Blizzard implemented a spell que, why not just recast the spell prior to the end of the current cast? Why should I use AHK?
Many people forget to start the next cast. Also, this relieves pounding on your keyboard, which could help those with carpal tunnel and other repetitive motion injuries.
* Will using this program get my account banned?
AHK is not a program prohibited by Blizzard. However, some of its functions are prohibited by Blizzard. It's very similar to the policy on the G15 keyboard. You
cannot use AHK or the G15 keyboard to spam a single key -- even if you are sitting at the keyboard and just want to prevent your finger from falling off. However, there has been no blue post prohibiting using AHK to multi-box. And as always, you can use a G15 keyboard to see who is talking in vent, have more keys to bind to macros, etc.
Here's the best blue response I've seen so far on the issue:
WoW Forums -> Seeking Blue clarification: key repeating

Hello Blizzard,
After unsuccessfully attempting to get clarification via an in-game ticket, I would like to see if the rules can be clarified regarding key repeating software. In light of recent bans, it is unclear what is or isn't allowed, and bearing in mind the majority of players want to follow the rules, it would be of great help if a statement could be made regarding key repeating software.
Previously, the apparent community understanding had been: if it doesn't automate gameplay, and requires you to be present at the keyboard playing the game, then it is legal. It seems with recent bans, this may not actually be the case.
My specific question is: is it okay to use software (or hardware drivers, or external hardware devices) that continually repeat ("spam") a key bound in-game to a macro or ability while another key is held down and while a player is present at the keyboard playing the game? For Hunters, for instance, spamming our shot rotation macro. I'm sure other classes have similar needs, perhaps not 10-20 times per second like a Hunter, but the same idea. Many aspects of the game make key spamming desirable, but is it legitimate to use external drivers/software to achieve it?
I'd love to not have to break my keyboard, fingers, and wrist to achieve maximum DPS, but I would also hate to wake up one morning and find I was banned for using a repeater. Please help myself and other Hunters follow the rules
|
This is not okay. One hardware function = one action, according to standard macro rules. A hardware function is a keypress (including press/release) associated with movement and an ability/item. Obviously, our default macro rules enable you to use 'modifying' trinkets or abilities, such as nature's swiftness, plus a single spell all in a single press.
To clarify: No, you may not use hardware or software to auto-spam your shot rotations - period.
|
The G15 has been supported by Blizzard in the past, I must have missed it when they changed their minds.
|
Scripts
To do anything with AHK you need to write a script. So far I've found a simple script that will allow you to repeat a spell or macro by holding down one key. I hope others will post more advanced scripts in the thread.
#ifWinActive World of Warcraft
{
$2::
Loop
{
if not GetKeyState("2", "P")
break
Send 2
sleep 1
}
return
$3::
Loop
{
if not GetKeyState("3", "P")
break
Send 3
sleep 1
}
return
}
EDIT: Script was found online, not written by me