我正试图在Windows7-10上自动按下桌面应用程序的按钮,我已经能够使用AutoHotKey和PowerShell实现这一点。然而,我有以下问题:
我已经查看了System.Windows.Automation命名空间的MSDN文档,但是这些文档没有提供实际的示例,也没有描述如何使用名称空间。
问题
如果控件始终具有窗口句柄(HWND)和自动化ID,如何使用AutoHotKey、PowerShell(3.0+)或C#调用控件上的按钮按下?
发布于 2018-02-28 08:32:26
您可以使用C#和System.Windows.Automation来完成它。首先,将您的控件作为一个AutomationElement (让我们称之为这个元素)。然后您可以调用InvokePattern来执行单击操作。
InvokePattern ip;
ip = thiselement.GetCurrentPattern(InvokePattern.Pattern) as
InvokePattern;
ip.Invoke();发布于 2018-03-02 01:47:22
假设您的窗口句柄是‘句柄’,而按钮的自动化id是'automationId‘,那么您可以执行以下操作
AutomationElement parentWin = AutomationElement.FromHandle(handle);
Condition c1 = new PropertyCondition(AutomationElement.AutomationIdProperty,
automationId);
AutomationElement thiselement = parentWin.FindFirst(TreeScope.Descendants, c1); 获得按钮对象后,只需调用InvokePattern .Please就可以原谅文本的格式化。
https://stackoverflow.com/questions/49019279
复制相似问题