Desktop automation pays off wherever a task is predictable: the same windows, the same fields, the same order. AutoHotkey is a good fit for that middle ground where a full integration is overkill but doing it by hand is wasting an hour a week.
#Requires AutoHotkey v2.0
#o::
{
Run "outlook.exe"
WinWait "ahk_exe outlook.exe", , 10
WinActivate "ahk_exe outlook.exe"
WinMove 0, 0, A_ScreenWidth, A_ScreenHeight
}
Identify windows by process with ahk_exe rather than by title. Titles change with the open document; process names do not.
Keyboard paths beat pixel coordinates. A menu reached with Send "!f{Down 3}{Enter}" keeps working after a window is resized, while a click at 640,480 does not. When a step is slow, wait for evidence that it finished — WinWaitActive, ClipWait or a check with WinExist — instead of guessing with a long Sleep.
#n::
{
folder := A_Desktop "\" FormatTime(A_Now, "yyyy-MM-dd")
DirCreate folder
Run "explorer.exe " folder
}
SetTimer covers anything from a reminder to a periodic backup copy. For work that must happen when you are not logged in, hand the job to Task Scheduler and let it launch the script.
FileAppend.Esc::ExitApp while testing.Ready-made building blocks are on the scripts and examples pages; the reference material sits under commands.
Script the steps that never vary with AutoHotkey: activate the window, send the keystrokes, and wait for each step to complete before the next.
Keystrokes. They keep working when a window moves or resizes, while fixed click coordinates break.
Yes. Use SetTimer inside a running script, or have Task Scheduler launch the script at set times.