我需要在桌面应用程序中获得类似自动化的宏。桌面应用程序可能是VB.NET或C#.net。 原因是使用户能够记录和重放他们想要自动化的某些任务。像办公室应用程序和视觉工作室中的宏。 我想到的第一件事就是VBA。
这是正确的方法还是有其他选择吗?
如果有人已经做过,那么任何需要注意的事情或事情都要注意
一些有用的链接让我离开。
无论什么小帮助都受到高度赞赏。
先谢谢。
Samrat的。
P.S。这是一个非常通用的问题,不属于任何特定技术。如果你们中的一些人认为标签不合适或者需要更多我错过的标签,请随时编辑它们:)
答案 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)
以下是有关MSDN主题的一些文章:
Implement a Microsoft Word-like Object Model for Your .NET Framework Application
StickOut: A Desktop Sticky Notes Application in the .NET Framework 2.0
答案 3 :(得分:1)
是否必须在您的应用程序中构建它? Windows级别上有宏解决方案(假设这是您的目标操作系统)
答案 4 :(得分:0)
您可以使用Powershell cmdlets。
将GUI执行的每个操作实现为cmdlet
。然后用户可以使用Powershell来编写脚本。我相信这是Exchange Server and SQL Server使用的方法。当然,这些都针对sysadmin用户
答案 5 :(得分:0)
由于您自己开发应用程序,您应该能够直接使用Windows API来创建(和监视)鼠标/键盘事件。
查看keybd_event,mouse_event和GetCursorPos。它们非常容易正确使用(我发现它们比使用SendInput更直接,但这只是我的观点)。