赞
踩
- using System.Windows.Automation;
- private static void AutoClickLoginButton()
- {
- //进程名称 可替换为你程序的进程
- string appName = "FR";
- Process[] myProcesses = Process.GetProcessesByName(appName);
-
- if (myProcesses.Length > 0) // 如果程序已经启动
- {
- Process targetProcess = myProcesses[0];
- AutomationElement rootElement = AutomationElement.FromHandle(targetProcess.MainWindowHandle);
-
- AutomationElement loginButton = FindLoginButton(rootElement);
-
- if (loginButton != null)
- {
- // 使用 InvokePattern 模拟点击登录按钮
- InvokePattern invokePattern = loginButton.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
- invokePattern.Invoke();
- }
- }
- }
-
- private static AutomationElement FindLoginButton(AutomationElement element)
- {
- // 查找子元素 查找子窗体下的按钮的名称 根据实际情况修改
- AutomationElement loginButton = element.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "登录"));
- if (loginButton != null)
- {
- return loginButton;
- }
- // 递归查找子元素
- AutomationElementCollection children = element.FindAll(TreeScope.Children, Condition.TrueCondition);
- foreach (AutomationElement child in children)
- {
- loginButton = FindLoginButton(child);
- if (loginButton != null)
- {
- return loginButton;
- }
- }
- return null;
- }
AutoClickLoginButton
方法会寻找名为"FR"的应用程序进程。然后,它使用 AutomationElement.FromHandle
从该进程的主窗口句柄获取根元素。FindLoginButton
方法被调用,该方法在根元素及其子元素中递归查找名为"登录"的登录按钮。InvokePattern
模拟点击登录按钮。InvokePattern.Invoke()
方法会模拟用户点击按钮的动作。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。