I have to interject that I use both
Autohotkey and
Strokeit to fill my macro needs. Both are excellent programs, and are easily programmed.
Autohotkey watches for specific keystrokes and then performs a macro, while strokeit utilizes mouse gestures to do the same.
Here at work, I use autohotkey to translate UPC barcodes into the item numbers we use to track inventory (These numbers are human readable, UPC is not.) all I have to do is scan the barcode, AHK sees the matching string, deletes it, and re-enters the corresponding code.