当前位置:   article > 正文

C# 利用 UI 自动化框架与应用程序的用户界面进行交互来模拟点击按钮_this.模拟点击_类(iuiautomationelement2, 513, 1, 1);

this.模拟点击_类(iuiautomationelement2, 513, 1, 1);

前提工作:

①需要引入命名空间:using System.Windows.Automation;

②添加两个引用:UIAutomationClient、UIAutomationTypes

  1. using System.Windows.Automation;
  2. private static void AutoClickLoginButton()
  3. {
  4. //进程名称 可替换为你程序的进程
  5. string appName = "FR";
  6. Process[] myProcesses = Process.GetProcessesByName(appName);
  7. if (myProcesses.Length > 0) // 如果程序已经启动
  8. {
  9. Process targetProcess = myProcesses[0];
  10. AutomationElement rootElement = AutomationElement.FromHandle(targetProcess.MainWindowHandle);
  11. AutomationElement loginButton = FindLoginButton(rootElement);
  12. if (loginButton != null)
  13. {
  14. // 使用 InvokePattern 模拟点击登录按钮
  15. InvokePattern invokePattern = loginButton.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
  16. invokePattern.Invoke();
  17. }
  18. }
  19. }
  20. private static AutomationElement FindLoginButton(AutomationElement element)
  21. {
  22. // 查找子元素 查找子窗体下的按钮的名称 根据实际情况修改
  23. AutomationElement loginButton = element.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "登录"));
  24. if (loginButton != null)
  25. {
  26. return loginButton;
  27. }
  28. // 递归查找子元素
  29. AutomationElementCollection children = element.FindAll(TreeScope.Children, Condition.TrueCondition);
  30. foreach (AutomationElement child in children)
  31. {
  32. loginButton = FindLoginButton(child);
  33. if (loginButton != null)
  34. {
  35. return loginButton;
  36. }
  37. }
  38. return null;
  39. }

实现原理:

当程序已经启动时,AutoClickLoginButton 方法会寻找名为"FR"的应用程序进程。然后,它使用 AutomationElement.FromHandle 从该进程的主窗口句柄获取根元素。
接着,FindLoginButton 方法被调用,该方法在根元素及其子元素中递归查找名为"登录"的登录按钮。
如果找到登录按钮,代码会使用 InvokePattern 模拟点击登录按钮。InvokePattern.Invoke() 方法会模拟用户点击按钮的动作。
整体来说,这段代码利用 UI 自动化框架与应用程序的用户界面进行交互。它通过搜索应用程序的界面层级结构来定位登录按钮,并模拟点击操作。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/266024
推荐阅读
相关标签
  

闽ICP备14008679号