我想知道有没有办法驱动现有的Windows应用程序?我想在应用程序中执行操作,例如填写表单中的文本字段,点击下一步并提交按钮等。基本上用户会做什么,我想自动执行这些操作。实现这一目标的最佳方法是什么?
由于 穆库尔
答案 0 :(得分:1)
如果特定的Windows应用程序使用本机窗口(所谓的)控件(UI元素),则可能(有限制和怪癖)。例如,Qt“手动”绘制UI元素,而MFC应用程序使用Win API UI本机(和扩展)元素。所以,这取决于。
您可以使用Visual Studio中的Spy++工具探索应用程序及其UI元素(有免费的替代方案)。使用这些工具,您可以查找目标窗口类名,ID和其他属性,以帮助您使用Windows API函数查找和识别感兴趣的元素。
可以使用EnumDesktopWindows,FindWindowEx,FindWindow和其他人来查找窗口,它可以控制您的兴趣。然后,使用SendMessage,您可以发送各种消息来设置焦点,模拟鼠标点击,设置编辑控件的文本,模拟按钮点击等等。
答案 1 :(得分:1)
您可以使用UI Automation编写此类程序,该程序允许程序发现并使用其他应用程序的GUI。这就是屏幕阅读器等可访问性工具与您的应用程序交互的方式。