The word was first used in computer science in the late 1950s for a category of software called assemblers. This type of software was used by programmers to write programs. Assemblers required the user to type lots of hard-to-read symbols. It was very easy to accidentally type something wrong. Then somebody got an idea for making typing easier. The user would type a short easy word and the assembler would replace that word with something longer and more cumbersome. Since the replacement text was longer than what the person typed, it was called a macro instruction. (Macro means big in Greek.)
The essential idea of a "macro" is:
A sequence of something gets replaced by a different sequence of something.
As time went on, the idea spread to other categories of software. One of the places it spread was a new category of software called macro programs. Here are some examples:
- Macro Express
- Easy Macro Recorder
- Workspace Macro Pro
- Macro Recorder
Before I explain what these programs do, I have to define a technical term, hardware input event.
A hardware input event is something you do with your fingers on the keyboard or with the mouse. It could be a key press, key release, button press, button release, or mouse movement.
These macro programs replace a sequence of hardware input events with a different sequence of hardware input events. This is similar to how the original macro assemblers replaced a sequence of characters with a different sequence of characters.
For example, you might press F1 and the macro program would replace that (make the computer think) that you actually pressed Alt followed by pressing X followed by moving the mouse to a certain location followed by pressing the right mouse button followed by...
You get the idea. This is not what multiboxing software does. Multibox software does not replace a hardware input event with other hardware input events. Here's what multiboxing software does:
Multiboxing software makes a window which does not have the focus on the local PC think that it received a hardware input event.
That's a completely different thing from what macro programs do.
Macro programs can't send keystrokes to remote PCs or to background windows. That just simply isn't something you can do by replacing hardware input events with other hardware input events.
Macro programs can't do what multiboxing programs do.
But what about the converse? Can a multiboxing program do macros? If it can, then it's not only a multiboxing program. It's also a macro program and Mythic's rule would apply.
The answer is that some multiboxing programs can perform macros, but hardly anybody uses multiboxing programs that way. HotkeyNet is an example. You can, if you wish, make a macro with HotkeyNet, but this isn't how the program is normally used. Here's an example of a macro made with HotkeyNet:
- Code: Select all
<Hotkey F1>
<SendFocusWin>
<Key Alt F1>
That hotkey replaces F1 with Alt F1. That's a macro. In contrast, here's a normal hotkey, the kind that people usually write:
- Code: Select all
<Hotkey F1>
<SendLabel w1, w2, w3>
<Key %Trigger%>
That's not a macro. It doesn't replace hardware input events with other hardware input events. What it does is make windows react as if they had the focus on the local PC even though they do not.
In short:
- Macro software changes hardware input events.
- Multiboxing software changes the destination, or adds destinations, to which hardware input events get sent.
