在应用程序中创建自动化宏支持

时间:2010-10-30 07:15:49

标签: c# .net c++ vba automation

我需要在桌面应用程序中获得类似自动化的宏。桌面应用程序可能是VB.NET或C#.net。 原因是使用户能够记录和重放他们想要自动化的某些任务。像办公室应用程序和视觉工作室中的宏。 我想到的第一件事就是VBA。

这是正确的方法还是有其他选择吗?
如果有人已经做过,那么任何需要注意的事情或事情都要注意 一些有用的链接让我离开。

无论什么小帮助都受到高度赞赏。

先谢谢。
Samrat的。

P.S。这是一个非常通用的问题,不属于任何特定技术。如果你们中的一些人认为标签不合适或者需要更多我错过的标签,请随时编辑它们:)

6 个答案:

答案 0 :(得分:12)

您是否正在考虑仅针对某些连续操作的“记录重放”的宏?如果在UI编程中使用Command pattern,这可能是非常好的。然后,每个用户操作由对象描述(从具有“execute()”方法的抽象Command类派生)。现在,记录和重放只是存储一个命令对象列表,序列化它们并完成宏。要重放它,您只需反序列化数据并再次执行命令列表。

希望有所帮助!

答案 1 :(得分:4)

VSTA(Visual Studio Tools for Applications)是VBA的替代品。它没有像VBA那样与第三方供应商或甚至MSFT自己的产品(目前唯一拥有它的是InfoPath)相提并论。但它比VBA更现代,如果这是一个问题。

查看VSTA main page,特别是视频:Integrating VSTA to Enable Macro Recording

答案 2 :(得分:2)

答案 3 :(得分:1)

是否必须在您的应用程序中构建它? Windows级别上有宏解决方案(假设这是您的目标操作系统)

答案 4 :(得分:0)

您可以使用Powershell cmdlets

将GUI执行的每个操作实现为cmdlet。然后用户可以使用Powershell来编写脚本。我相信这是Exchange Server and SQL Server使用的方法。当然,这些都针对sysadmin用户

答案 5 :(得分:0)

由于您自己开发应用程序,您应该能够直接使用Windows API来创建(和监视)鼠标/键盘事件。

查看keybd_eventmouse_eventGetCursorPos。它们非常容易正确使用(我发现它们比使用SendInput更直接,但这只是我的观点)。