在C#WinForms应用程序中(在.NET 3.5上,可能是4.0很快),您将如何允许用户定义自己的宏?例如,用户可能希望按键CTRL + K表示单击菜单中的某个项目,并在菜单打开的对话框中输入一些文本,然后按“确定”关闭对话框。
理想情况下,我们的软件可以提供宏录制功能,使用户能够开始录制,执行所需的任务,并停止录制以使宏可用。这是他们习惯使用的旧版本软件的功能,它是用FoxPro编写的,这是一种内置了这种功能的工具。
对我们来说,最好的选择显然是获取并使用经过试验和测试的第三方库,但是我们也欢迎使用我们自己版本的想法。
答案 0 :(得分:1)
如果我正在处理这样的事情,我可能会集成一个通用事件处理程序来记录您想要记录的事件(可能是作为添加到可用按钮的单个处理程序,或者通过创建RecordedEventHandler类来扩展EventHandler和然后将所有事件处理从子类化 - 这些只是头脑中的想法,所以我没有考虑哪个是最可行的)并且只使用“记录宏”按钮作为开关。只需要记录几种不同类型的事件 - 按钮点击,任何文本字段上的键盘输入,键盘快捷键和任何鼠标输入字段上的鼠标输入,因此它不是一项非常繁重的任务,尽管当然有效如果您倾向于这样做是如何存储和绑定宏以及如何方便导入和导出是耗时但在技术上没有挑战性。我不知道为此目的的任何库(虽然我希望有一些存在)并且考虑它我不确定将这样的东西集成是多么容易因为大多数人的宏需求很可能是不同。
如果您需要能够记录应用程序周围的事件,那么您可能会发现ManagedWinApi会有所帮助。
答案 1 :(得分:0)
我对用于宏观录制的“命令设计模式”有很好的经验。每个命令都会激活一些应用程序范围(例如静态)事件以及参数信息等等......记录器会监听此事件并持续执行命令调用序列。