我正在尝试为Windows 7-10上的桌面应用程序自动按钮按下。我已经能够使用AutoHotKey和PowerShell执行此操作。但是,我遇到了以下问题:
我查看了System.Windows.Automation
命名空间的MSDN文档,但文档没有提供实际示例或描述如何使用命名空间。
问题
如果我总是有一个窗口句柄(HWND
)和一个控件的自动化ID,如何使用AutoHotKey,PowerShell(3.0+)或C#调用按钮上的按钮?
答案 0 :(得分:1)
您可以使用C#和System.Windows.Automation执行此操作。 首先将您的控件作为AutomationElement(让我们称之为thiselement)。 然后,您可以调用InvokePattern来执行单击操作。
InvokePattern ip;
ip = thiselement.GetCurrentPattern(InvokePattern.Pattern) as
InvokePattern;
ip.Invoke();
答案 1 :(得分:1)
假设您的窗口句柄是'handle',按钮的自动化ID是'automationId',那么您可以执行类似
的操作AutomationElement parentWin = AutomationElement.FromHandle(handle);
Condition c1 = new PropertyCondition(AutomationElement.AutomationIdProperty,
automationId);
AutomationElement thiselement = parentWin.FindFirst(TreeScope.Descendants, c1);
一旦你得到按钮对象,只需调用InvokePattern。请原谅文本的突出显示