可以对比以下v2原版示例和v1调用的差别,此v1函数可以轻松的兼容并直接调用v2的函数库
v1直接调用v2版UIA函数代码片段+调用方法:
#Requires AutoHotkey v1.1.33+ #SingleInstance Force #Include <v2Lib> ; 修改至:https://www.autohotkey.com/boards/viewtopic.php?f=6&t=98917 SetBatchLines -1 SetWorkingDir %A_ScriptDir% ; 以下新建两个V2临时进程,一个用来给F1热键调用反馈,另一个读UIA信息 V2调用变量1 := v2Lib("test函数(a){`nMsgBox a`n}") ; 支持自动读取已安装的V2解释器安装路径 V2 := v2Lib(A_ScriptDir "\Lib\UIAutomation类库.ahk2", "C:\Program Files\AutoHotkey\v2\AutoHotkey64.exe") ; 也可以参2指定V2解释器路径 ; 调用V2的UIA类库:https://www.ahk66.com/833 ele := V2["UIA"].ElementFromHandle(WinExist("A")) ; 获取窗口元素【V1调用写法】 ; ele := V2["UIA"].ElementFromPoint(100 | 200 << 32) ; 获取屏幕坐标 100, 200 的元素 ; ele := V2["UIA"].GetFocusedElement() ; 获取当前具有键盘焦点的元素 ; UIA基本属性的获取: ; ele := UIA.ElementFromHandle(WinExist("A")) ; 原版V2写法参考 MsgBox % "窗口标题名:" ele.Name MsgBox % "窗口Class名:" ele.ClassName pos := ele.BoundingRectangle MsgBox % "left:" pos.left "`ntop:" pos.top "`nright:" pos.right "`nbottom:" pos.bottom Return F1::V2调用变量1.test函数.Call((onoff := !onoff) ? "调用V2传参测试1111" : "调用V2传参测试2222") F3::V2.MsgBox.Call("让V2解释器进程MsgBox弹窗") ; 在目标库中调用一个名为 "Function"的函数。 ; V2.Function.Call(params) ; V2.Function.Call ; 获取V2的一个全局变量 ; value := V2["VarName"] ; value := V2.VarName ; 对V2的一个全局变量赋值 ; V2["VarName"] := value ; V2.VarName := value ; 创建一个类的实例 ; value := V2["ClassName"].Call(params) ; value := V2.ClassName.NestedClass.Call(params) ; ; 设置__项目道具 set __Item prop `a := [[1]]` ; V2.SetItem(V2.a[1], 22222, 1) ; a[1][1] := 22222 ; ; 获得__项目道具 get __Item prop ; V2.GetItem(V2.a[1], 1) ; 22222
dbgba优化版+v2.UIA示例打包下载:
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)