Зачем две темы в одной статье? Затем, что есть задачи, которые нуждаются в обоих механизмах, поэтому новичок, решивший освоить C++ для своих практических нужд, с помощью этой статьи может сразу приступить к реализации не слишком сложных проектов.
Для примера, вот список некоторых задач, которые решаются с помощью этих механизмов:
подмена/эмуляция нажатий клавиш, кнопок мыши;
автоматизация ввода, симуляция поведения пользователя в зависимости от содержимого на экране;
снимки с экрана (по нажатию клавиш или по таймингу);
замена статического содержимого с целью повышения комфорта работы (замена фона, повышение контраста шрифта, экранная лупа);
вывод компактных индикаторов/списков выбора в любой момент в любое место на экране;
превращение домашнего компьютера в медиацентр (беспроводная клавиатура + набор шаблонов для запуска фильмов, музыки, регулировки звука и частот + кресло/диван + большой монитор + печеньки :-) ).
Любопытно? Тогда прошу в статью!