首页 > 系统相关 >UI Automation PowerShell Extensions使用,编写powershell脚本实现ui自动化操作 简单实例

UI Automation PowerShell Extensions使用,编写powershell脚本实现ui自动化操作 简单实例

时间:2023-01-08 02:44:05浏览次数:78  
标签:Name Get win Automation UI ui PowerShell powershell

借鉴这几个网站。

使用 PowerShell UI 自动扩展操作应用(自动化) - PMP 风格 (hatenablog.com)

UI Automation PowerShell Extensions的Download(再分发) – code-lab.net

PowerShell UIAutomation Tutorial: UI Automation of Desktop Apps (softwaretestinghelp.com)

PowerShell UI自动化测试框架 – PowerShell 中文博客 (pstips.net)

原理

UI Automation位于.NET Framework中。关键程序集有两个:UIAutomationClient.dll    UIAutomationTypes.dll。可以使用c#编写程序操作win forms。现在网上流行的py ui自动化是这的py接口。当然大部分人都觉得这种ui自动化最好用脚本语言,而不是c#这种需要编译的。正好这位作者给出了powershell接口     GitHub - apetrovskiy/STUPS at master         不过他的代码似乎得在vs2015上编译,最新的vs我没捣鼓出来。二进制文件在这位日本人的网址上能下载 UI Automation PowerShell Extensions的Download(再分发) – code-lab.net     

  https://files.cnblogs.com/files/kyo413/UIAutomation.0.8.7B3.NET40.zip?t=1673114125&download=true

https://files.cnblogs.com/files/kyo413/UIAutomation.0.8.7B3.samples.zip?t=1673114071&download=true

使用技巧:

  • 每个控件都是一个AutomationElement对象。
  • AutomationElement可以通过FindAll和FindFirst方法递归搜索子控件,通过参数可以过滤控件的类型。
  • 每一个AutomationElement都有它本身所支持的可被执行的模式(Pattern),其实就是动作啦,比如按钮自然是点击模式,文本框自然是取值和赋值模式。

 基本操作就是找到节点,对节点使用对应的操作。作者还给出了例子。但是他的例子应该在英文版win上是能不修改直接运行的,在中文操作系统上因为待操作的程序名字可能变成了中文所以需要略微修改。

简单例子

第一步  导入库       请自行修改dll的路径

Import-Module C:\UIAutomation\UIAutomation.dll

 

例子一 操作记事本

打开记事本

获取程序节点

$window = Get-UiaWindow -Name '未命名 - 记事本'

输入字符

$window.Keyboard.TypeText("Hello UI Automation")

 

它附带一个程序,称为 UI automation间谍.exe,以实际创建脚本。 启动此操作并执行一系列操作后,可以将其保存到脚本中。

例子二  操作计算器。

 

Import-Module .\UIAutomation.0.8.7B3.NET40\UIAutomation.dll
[UIAutomation.Preferences]::Highlight=$false

Start-Process calc
$win = Get-UiaWindow -Name '计算器'
$win | Get-UiaButton -Name '三' | Invoke-UiaButtonClick | Out-Null
$win | Get-UiaButton -Name '加' | Invoke-UiaButtonClick | Out-Null
$win | Get-UiaButton -Name '四' | Invoke-UiaButtonClick | Out-Null
$win | Get-UiaButton -Name '等于' | Invoke-UiaButtonClick | Out-Null

 

也可以使用管道   注意按钮的名字是中文的 

$calc=Get-UiaWindow -Name '计算器'
'一','六','平方根' | foreach { 
   $calc | Get-UiaButton -Name $_ | Invoke-UiaButtonClick
}

 

这样就可以用很小的体积写自动化脚本,特别适合整天重复装程序的工作。其他rpa都需要带一个巨大的环境。这个只需要一个额外不到500k的dll

待续

 

标签:Name,Get,win,Automation,UI,ui,PowerShell,powershell
From: https://www.cnblogs.com/kyo413/p/17034011.html

相关文章

  • 关于c#:如何在Core 2.0中的ConfigurationBuilder中设置SetBasePath 引入包解决 .AddEnv
    关于c#:如何在Core2.0中的ConfigurationBuilder中设置SetBasePathhttps://www.codenong.com/46843367/HowtoSetBasePathinConfigurationBuilderinCore2.0如何......
  • powershell简单的使用gui
    powershell作为win的官方shell,可以调用.net对象。让它可以无所不能。例如给脚本加上图形界面更直观。而且这是win占用文件体积最小的图形程序。几行文本就能构建一个gui程......
  • Reduce the indexing time and CPU load with pre-built JDK shared indexes(idea打开
    Intellijidea出现如下提示:ReducetheindexingtimeandCPUloadwithpre-builtJDKsharedindexes解决方法: idea为了能够更快的使用共享索引,会下载JDK和Maven库的共享......
  • [ABC256E] Takahashi's Anguish 题解
    [ABC256E]Takahashi'sAnguishSolution目录[ABC256E]Takahashi'sAnguishSolution更好的阅读体验戳此进入题面SolutionCodeUPD更好的阅读体验戳此进入题面存在$n......
  • ui设计学习三要素,零基础必看-优漫动游
       对于一些初学UI设计的同学来说,你可能不知道该从何下手,今天,本文就来给大家讲讲如今的UI设计领域中非常重要的三要素-3C要素,即UI设计中的色彩、对比度、内容三部分,想必......
  • ui设计可以从事的岗位有哪些?-优漫动游
      ui设计指对软件的人机交互、操作逻辑、界面美观的整体设计,其可以分为实体ui和虚拟ui两类,那么,ui设计可以从事的岗位有哪些?UI设计师不仅可以从事UI设计方面的工作,还能胜......
  • PowerShell木马免杀利器: Invoke-Obfuscation(过火绒)
    Invoke-Obfuscation简介Invoke-Obfuscation工具下载地址:https://github.com/danielbohannon/Invoke-Obfuscation这是一款针对PowerShell文件的免杀工具,此处对CS生成......
  • __builtin_函数的使用
    typedefunsignedintui1.intffs(uix){//该函数判断n的二进制末尾最后一个1的位置,从一开始return__builtin_ffs(x);}2.intpopcount(uix){//该函数时判断n......
  • ExtJS - UI组件 - DataView
    转载请注明出处:https://www.cnblogs.com/cqpanda/p/17019670.htmlExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html更新记录2023年1月2日从笔记迁移到......
  • 认识 Java 中的 StringBuilder 类
    Stringstr="hello"; System.out.println(str); System.out.println(str+"world"); }输出的结果是:hellohelloworld从运行结果中我们可以看到,程序运行时会额外创建......