C # GUI макробиблиотеки или общие подходы? - PullRequest
3 голосов
/ 27 января 2010

В приложении WinForms на C # (в .NET 3.5, возможно, в скором времени 4.0), как бы вы позволили пользователю определять свои собственные макросы? Например, пользователь может захотеть, чтобы нажатие клавиши CTRL + K означало щелчок по определенному пункту в меню и ввод текста в диалоговом окне, открытом меню, перед нажатием «ОК», чтобы закрыть диалоговое окно.

В идеале, наше программное обеспечение могло бы обеспечить функцию записи макроса, которая позволила бы пользователю просто начать запись, выполнить нужные задачи и остановить запись, чтобы был доступен макрос. Это функция, к которой они привыкли из старой версии программного обеспечения, написанной на FoxPro, инструмент, который имеет такие встроенные возможности.

Наилучшим вариантом для нас было бы, безусловно, приобретение и использование проверенной и проверенной сторонней библиотеки некоторых видов, но идеи для развертывания нашей собственной версии также приветствуются.

Ответы [ 2 ]

1 голос
/ 27 января 2010

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

Если вам нужно было регистрировать события вокруг вашего приложения, вам может пригодиться ManagedWinApi .

0 голосов
/ 27 января 2010

У меня есть хороший опыт работы с «шаблоном проектирования команд» для макросъемки. Каждая команда запускает какое-то событие в масштабе приложения (например, статическое) с информацией о параметрах и т. Д. Регистратор прослушивает это событие и сохраняет последовательность вызова команды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...