Если бы я работал над чем-то вроде этого, я бы, возможно, интегрировал бы обработчик событий общего назначения, чтобы регистрировать события, которые вы хотите записать (возможно, либо как отдельный обработчик, добавленный к доступным кнопкам, либо создав класс RecordedEventHandler для расширения EventHandler и затем подклассифицировать всю вашу обработку событий - это просто головокружительные идеи, поэтому я не рассматривал, какие из них наиболее жизнеспособны), и просто используйте кнопку «запись макроса» в качестве переключателя для этого. Вероятно, нужно записать только несколько разных типов событий - нажатия кнопок, ввод с клавиатуры в любых текстовых полях, сочетания клавиш и ввод мыши в любых полях ввода мыши, так что это не очень сложная задача, хотя, конечно, работает Как хранить и связывать макросы и как упростить импорт и экспорт, если вы склонны делать это, отнимает много времени, но технически не сложно. Я не знаю ни одной библиотеки для этой цели (хотя я ожидаю, что некоторые существуют) и, думая об этом, я не уверен, насколько легко было бы интегрировать что-то подобное, потому что потребности большинства людей с точки зрения макросов, вероятно, будут отличается.
Если вам нужно было регистрировать события вокруг вашего приложения, вам может пригодиться ManagedWinApi .