我需要访问一个没有公共 COM 或 API 的 .net 应用程序。显然,唯一的访问方式是 Forms GUI。
基本上,我需要模拟用户填写和提交表单。在此处输入文本,在此处输入其他内容,然后提交。
我们有一个“点击这个位置并模拟输入这个文本”的机器人,但它不能很好地处理新版本的表单。
是否可以以不依赖于组件确切位置的编程方式与这样的 GUI(或应用程序?)进行交互?理想情况下,类似于:“在地址字段中键入 bla-bla-bla,然后单击提交按钮”。
我需要访问一个没有公共 COM 或 API 的 .net 应用程序。显然,唯一的访问方式是 Forms GUI。
基本上,我需要模拟用户填写和提交表单。在此处输入文本,在此处输入其他内容,然后提交。
我们有一个“点击这个位置并模拟输入这个文本”的机器人,但它不能很好地处理新版本的表单。
是否可以以不依赖于组件确切位置的编程方式与这样的 GUI(或应用程序?)进行交互?理想情况下,类似于:“在地址字段中键入 bla-bla-bla,然后单击提交按钮”。
这是一个有趣的问题。虽然我自己没有尝试过这种方法,但我认为编写另一个应用程序来托管现有应用程序应该是很有可能的。
WinForms 表单只是类,字段和按钮只是类,事件(onClick 等)处理程序只是方法,您都可以从托管应用程序访问和操作它们(您可能需要借助反射来访问一些私有成员,但这应该没什么大不了的)。
更新
实际上,我认为怀特可能是帮助您完成这项任务的好工具。我从未使用过它,但入门示例代码看起来很有趣。