The free Key Macro that I know is AutoHotkey
its a free, open-source utility for Windows.
* 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.
* Expand abbreviations as you type them. For example, typing "btw" can automatically produce "by the way".
* Create custom data entry forms, user interfaces, and menu bars. See GUI for details.
* Remap keys and buttons on your keyboard, joystick, and mouse.
* Respond to signals from hand-held remote controls via the WinLIRC client script.
* Run existing AutoIt v2 scripts and enhance them with new capabilities.
* Convert any script into an EXE file that can be run on computers that don't have AutoHotkey installed.
And as for the paid one Shareware. KeyText from MJMSoft is good