2011-04-05 46 views
4

我需要控制一些没有API和非常有限的命令行参数的第三方应用程序。 所以我需要使用.net和C#来模拟用户交互。如何控制没有API的第三方应用程序?

我需要做的:

  • 启动应用程序(这工作)
  • 输入字符串转换成相应的编辑 领域
  • 按下按钮
  • 额外的奖励是隐藏应用程序窗口

可以这样做,怎么样?

非常感谢。


编辑: 你怎么看待AutoIt的工具?

回答

7

您可以使用White来实现此目的。

它使您能够以编程方式模拟用户与Win32,WinForms,WPF,Silverlight和SWT应用程序的交互。我多年前就使用它,它首先可以在WinForms应用程序上自动化一些简单的烟雾测试,并取得巨大成功。

(警告:这是根据我的使用前一阵子,所以它可能是现在略有不同)

我创造了一些代码,启动我的应用程序,按名称查找一系列的控制。一旦找到,每个控件都可以被操纵(例如输入文本,点击按钮等)。要查找控件的名称,请使用诸如Spy ++(Win32),UISpy(WinForms)或Snoop(WPF)之类的软件来检查正在运行的应用程序。

2

Theres也是UI自动化API,对于这项任务来说,这将非常容易掀起。 这个链接会给你一个支持每种控件类型的想法:UI Automation Control Types。 您可以使用控件名称,标题或资源ID来获取其句柄,并执行所需操作。 点击一个按钮,可以像抓住把手,一样简单:

AutomationElement control = AutomationElement.FromHandle(controlHandle); 
InvokePattern ip = (InvokePattern)control.GetCurrentPattern(InvokePattern.Pattern); 
ip.Invoke(); 

我有很好的成功,与此有关的所有.NET窗口,并从原生世界控制99%

相关问题