aardio 文档
aardio 范例: 操作计算器
import winex;
import mouse;
import process;
import System.Windows.Automation;
if(!_WIN10_LATER) error("此范例支持 Win10 以上版本的计算器")
//启动计算器
process.execute("calc.exe")
//等待计算器窗口激活
var hwnd = winex.waitActive("计算器",,"ApplicationFrameWindow")
//访问 .NET 类的静态成员
Automation = System.Windows.Automation;
AutomationElement = Automation.AutomationElement;
//查找计算器窗口
var calcWindow = AutomationElement.FromHandle(hwnd);
//等待创建按钮控件
var numButton1 = win.wait( function(){
//查找数字 1 按钮
return Automation.Find(calcWindow,{
AutomationId = "num1Button"
})
})
//查找其他按钮(不需要再调用 win.wait 等待)
var numButton2 = Automation.Find(calcWindow,{
AutomationId = "num2Button"
})
//数字 3
var numButton3 = Automation.Find(calcWindow,{
AutomationId = "num3Button"
})
//加运算按钮
var addButton = Automation.Find(calcWindow,{
AutomationId = "plusButton"
})
//等于按钮
var equalButton = Automation.Find(calcWindow,{
AutomationId = "equalButton"
})
//点击数字按钮 1
var invokePattern = numButton1.GetCurrentPattern(Automation.InvokePattern.Pattern);
invokePattern.Invoke();
//点击 + 按钮
var invokePattern = addButton.GetCurrentPattern(Automation.InvokePattern.Pattern);
invokePattern.Invoke();
//点击数字按钮 2
var invokePattern = numButton2.GetCurrentPattern(Automation.InvokePattern.Pattern);
invokePattern.Invoke();
//用鼠标点击等号按钮,mouse 库函数直接支持以 .NET 控件作为参数
mouse.click(equalButton);
//也可以用参数 1,2 指定控件内部的相对 x,y 坐标
mouse.click(2,3,equalButton);
//显示结果的节点
var resultText = Automation.Find(calcWindow,{
AutomationId = "CalculatorResults"
})
//获取结果
var text = resultText.Current.Name;
var num = string.match(text,"[\d\,]+");
num = string.replace(num,",","");
//输出结果
print(resultText.Current.Name)
Markdown 格式