Guide
Macro Recorder for Windows: Record Mouse and Keyboard, Then Fix the Timing

A macro recorder captures what you do with the mouse and keyboard, then plays it back. If you have a repetitive task in an application with no macro feature of its own, that is usually the shortest path to automating it — you perform the sequence once and hand it back.
This guide covers what a macro recorder can and cannot do on Windows, why the tool most people are still using has one specific flaw, and how to record and edit a macro properly.
The flaw in every 2010-era recorder
The classic Windows macro recorders — TinyTask being the famous one, at 36 KB and largely unchanged since 2010 — record to an opaque blob and replay it. That is fine until something is slightly wrong.
And something is always slightly wrong. You started recording a beat too early. One pause was 200 ms too short and the dialog had not appeared yet. A click landed three pixels off the button. With an unopenable recording, every one of those means shooting the whole take again, and the new take introduces its own small mistake.
A recording you can edit is the entire difference. ClickTray's Macro Recorder drops your capture into a step list with every delay in milliseconds and every coordinate exposed, both editable in place. A timing fix is a number you change.
Recording a macro
- Open Macro Recorder and press record.
- Perform the task once, at your own pace. Mouse movement, clicks, scroll and keystrokes are all captured, with the real gaps between them.
- Press stop. ClickTray reports how many steps it captured.
Two things worth knowing about what it does while recording:
- Continuous cursor movement is compressed as it captures, into point-to-point transitions rather than a per-pixel trail. That keeps the file small and the replay smooth, and it happens on capture rather than on replay, so what you see in the step list is what will run.
- Recordings stay on this PC. A macro is a JSON file in your own profile folder. It is never uploaded, and ClickTray's anonymous crash and usage reporting is built so it cannot carry one — it sends a module name and a coarse error class, never a key name, coordinate or window title.
Editing the steps
This is the part the old tools do not have. Once a macro exists the Steps list appears, and each row shows its delay and its coordinates.
Common fixes, in rough order of frequency:
- Delete the false start. The first two or three steps are usually you moving to the right window. Remove them.
- Lengthen a pause. If the macro races ahead of a dialog, find the step before it and raise the delay. Guess generously the first time; you can tighten it later.
- Nudge a coordinate. A click that lands on the edge of a button is two numbers.
Then set the replay: Repeat takes a count from 1 up to 100,000 or infinite, Speed runs from 0.1× to 10× the recorded pace, and Timing jitter (ms) varies the gaps slightly on replay for anything that dislikes a perfectly identical repeat.
Macro recorder or scripting language?
The honest comparison, since this is the decision people actually face:
Use a macro recorder when the task is a fixed sequence you can perform once, the windows are always in the same place, and the shape of the work does not change between runs. That covers most repetitive desktop work.
Use AutoHotkey when you need conditions, loops with logic, variables, or behaviour that depends on what is on screen. It is a full scripting language and genuinely more capable — the trade is that you have to learn it, which is why most people looking for a macro recorder are not looking for AutoHotkey. There is a fuller comparison here.
If your only reason for reaching for a script is "run this until the button appears", ClickTray's pixel and image conditions cover that without a language: run only while a colour is present, stop when an image appears, or click a captured image wherever it is found.
ClickTray is free, ad-free and code-signed, with no paid tier and no account. It is funded by sharing a slice of your PC's idle bandwidth when it can — and the tools are disabled while that is switched off, which is the trade, said plainly.
The limitation to plan around
Coordinates are absolute. A macro recorded at 1920×1080 at 100% scaling does not survive being replayed at 2560×1440, or at 125% scaling, or on a different monitor. Every target moves.
ClickTray warns you when a profile was recorded on a different screen than the one you are on, and tells you both resolutions and both scaling percentages — but it warns rather than blocks, because sometimes you know better. If a replay misbehaves after a display change, that is almost always why.
The same applies to a macro someone else sends you. Profiles export as human-readable JSON and import with every field validated and every number clamped, so a shared macro cannot describe a program to run — but it can still click somewhere you did not expect. Read it before you run it.
Sharing a macro
Use the Profiles screen. Export saves the configuration as JSON, with any captured image templates included so the file works on someone else's PC. Import loads a profile someone shared, checking it before anything runs.
That portability is the other reason to prefer an editable format over a binary blob: a recording you can read is a recording someone else can trust.
The tool for this — Macro Recorder
Captures mouse movement, clicks, scroll and keystrokes, then replays them a set number of times or until you stop it. The recording lands in an editable step list, so a delay that is 200 ms short is a number you change rather than a take you shoot again. Continuous cursor movement is compressed to point-to-point transitions as it records, which keeps the file small and the replay smooth. Learn more about the Macro Recorder.
Windows 10/11 (x64) · Free · No account