aardio 文档

winex 库模块帮助文档

winex 成员列表

winex.attach

绑定外部窗口所属线程到当前线程并共享输入处理机制。
注意此函数会重置键盘状态

附加输入线程后立即调用 win.setFocus 可能偶尔会无效,可延时至少几十毫秒

winex.attach(hwndAttach,enabled)

绑定当前线程到外部窗口所属线程并共享输入处理机制。
@hwndAttach 指定外部线程的目标窗口句柄
参数 @enabled 省略或为 true 绑定线程,为 false 取消绑定。
返回值为是否成功

winex.attach(hwndAttach,proc)

执行参数@proc指定的回调函数,
@hwndAttach 指定外部线程窗口句柄。
执行回调函数时绑定当前线程到外部窗口所属线程并共享输入处理机制。
执行完取消绑定,并返回该函数的返回值

winex.attachThread(外部线程ID)

绑定当前线程到外部线程并共享输入处理机制。
返回值为是否成功附加。
注意此函数会重置键盘状态。

附加输入线程后立即调用 win.setFocus 可能偶尔会无效,可延时至少几十毫秒

winex.attachThread(外部线程ID,false)

解除附加
返回值为是否成功解除

winex.click(按钮窗口句柄)

模拟点击按钮

winex.click(窗口句柄,"菜单标题",...)

如果参数@2为字符串,
或者指定了参数@3,
则先使用所有传入参数调用 winex.findMenu 查找菜单项,
如果找到则模拟点击该菜单项

winex.click(窗口句柄,命令ID)

模拟点击命令

winex.close(输入窗口句柄)

关闭窗口,发送 _WM_CLOSE 消息
不等待消息处理完成

winex.closeAndWait(输入窗口句柄)

关闭窗口,发送 _WM_CLOSE 消息
等待消息处理完成,且不阻塞当前线程消息循环

winex.each("类名","查找标题")

for hwnd,title,threadId,processId in winex.each( "", ".*/*请输入标题包含字符串  
可使用模式匹配语法*/" ) {   
//遍历所有顶层窗口以及UWP应用顶层窗口并查找匹配窗口  

}

winex.each("类名","查找标题",父窗口,超时毫秒)

for hwnd,title,threadId,processId in winex.each("", ,/*请输入桌面父窗口句柄  
省略父窗口则父窗口为顶层桌面窗口,*/) {   
//遍历指定父窗口中的直接子窗口,不含子间接子窗口  

}

winex.each()

for hwnd,title,threadId,processId in winex.each( /*无参数则返回桌面所有顶层窗口以及UWP应用顶层窗口,  
可在此输入类名,标题包含字符串  
可使用模式匹配语法*/ ) {   
//遍历所有顶层窗口  

}

winex.eachFindEx

返回一个迭代器,
按Z序遍历所有子窗口,支持 UWP 应用窗口,
迭代器每次遍历返回2个值:找到的子窗口句柄,父窗口句柄

winex.eachFindEx(控件类名,控件文本,父窗口)

查找类名,查找标题都是可选参数,都不支持模式匹配语法,
省略父窗口句柄遍历全部顶层窗口

winex.eachFindEx(控件类名,控件文本,父窗口类名,父窗口标题)

查找类名,查找标题都是可选参数,都不支持模式匹配语法,
省略父窗口句柄遍历全部顶层窗口

winex.enum(onfind)

winex.enum(   
    function(hwnd,depth){  
        ..io.print( depth/*深度*/,hwnd/*窗口*/,winex.getText(hwnd)/*标题*/ )  
        /*此函数深度枚举所有窗口(包括窗口的直接子窗口、间接子窗口),  
不指定父窗口会枚举所有桌面窗口,以及UWP应用窗口,  
返回false停止枚举*/  
    }   
)

winex.enum(onfind,parent)

winex.enum(   
    function(hwnd,depth){  
        ..io.print( depth/*深度*/,hwnd/*窗口*/,winex.getText(hwnd)/*标题*/ )  
        /*此函数深度枚举指定父窗口的所有下级窗口(包括直接子窗口、间接子窗口),  
省略父窗口则默认为桌面窗口,  
返回false停止枚举*/  
    }   
    ,父窗口  
    ,要查找的类名  
    ,要查找的标题  
    ,要查找的控件ID  
)

winex.enumTop(onFind,cls,title)

winex.enumTop(  
    function(hwnd){  
        /*枚举桌面顶层窗口,  
@onFind 参数为枚举回调函数,  
@cls 参数指定要查找的类名,不支持模式匹配,可省略,  
@title 参数指定要查找的标题,不支持模式匹配,可省略  

回调参数 @hwnd 为当前找到的窗口句柄*/  
    }  
)

winex.find(类名模式串,标题模式串,进程ID,线程ID,超时毫秒)

查找顶层窗口,所有参数都是可选参数
可选指定读取窗口文本超时毫秒数
返回值为:句柄,线程ID,进程ID

winex.findActivate(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配控件)

调用winex.findExists查找并激活包含指定控件窗口的父窗口,所有参数可选
控件窗口可以是指定父窗口的所有下级窗口(包括直接子窗口,间接子窗口),
也可以用参数@1指定所有窗口并查找独立窗口,
返回值为:窗口句柄,控件句柄,线程ID,进程ID

winex.findEx

在指定父窗口内查找子窗口,
使用句柄指定父窗口,
使用类名和标题查找子窗口,支持模式匹配

winex.findEx(所有窗口句柄, ,窗口模式串,标题模式串,控件ID)

使用参数@1指定所有窗口,除所有窗口句柄外所有参数可选,
使用winex.enum枚举指定所有独立窗口,
并且该窗口的所有窗口为参数@1指定的句柄,
返回值为句柄

winex.findEx(父窗口句柄,第几个匹配,类名模式串,标题模式串,控件ID)

在指定父窗口内查找子窗口,除父窗口句柄外所有参数可选,
使用winex.enum枚举指定父窗口的所有下级窗口(包括直接子窗口,间接子窗口),
返回值为句柄

winex.findEx2

在指定父窗口内查找并等待子窗口,
通过类名和标题查找父窗口与子窗口,不支持模式匹配

winex.findEx2(子窗口类名,子窗口标题,父窗口类名,父窗口标题,子窗口进程ID)

查找指定的子窗口,所有参数不支持模式匹配,
所有参数都可以省略

winex.findExists(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配控件)

查找包含指定控件窗口的父窗口,所有参数可选
控件窗口可以是指定父窗口的所有下级窗口(包括直接子窗口,间接子窗口),
也可以用参数@1指定所有窗口并查找独立窗口,
返回值为:窗口句柄,控件句柄,线程ID,进程ID

winex.findMainWnd(类名模式串,标题模式串,进程ID,线程ID,超时毫秒)

查找独立不属于其他窗口所有的顶层窗口所有参数都是可选参数
可选指定读取窗口文本超时毫秒数
返回值为:句柄,线程ID,进程ID

winex.findMenu(窗口句柄,"菜单标题",...)

参数@2开始可以指定1个或任意个菜单匹配参数,
菜单匹配参数可以是菜单项标题,也可以是菜单项序号,
第一个菜单项序号为1
找到子菜单则返回子菜单,
否则返回当前菜单句柄与菜单项命令ID

winex.findSubMenu(菜单句柄,"菜单标题",...)

参数@2开始可以指定1个或任意个菜单匹配参数,
菜单匹配参数可以是菜单项标题,也可以是菜单项序号,
第一个菜单项序号为1
找到子菜单则返回子菜单,
否则返回当前菜单句柄与菜单项命令ID

winex.fromClientPoint(窗口句柄,x坐标,y坐标)

从指定的窗口坐标查找子窗口
仅子窗口,非叶级窗口

winex.fromClientPoint(窗口句柄,x坐标,y坐标,_CWP_ALL)

从指定的窗口坐标查找子窗口
_CWP_ALL指定包含隐藏、禁用控件

winex.fromClientPointReal(窗口句柄,x坐标,y坐标)

从指定的窗口坐标查找子窗口
仅子窗口,非叶级窗口,穿透groupbox。

winex.fromPoint(x坐标,y坐标)

从指定的屏幕坐标查找窗口
获取叶级子窗口,忽略static控件,隐藏或被禁用的控件

winex.fromPointReal(x坐标,y坐标)

从指定的屏幕坐标查找窗口
获取叶级子窗口,不忽略static控件,可穿透groupbox
可选在参数@4中_CWP_ALL允许获取隐藏、禁用控件,
更多选项请参考此函数源码

winex.getCaret()

返回对象:rectObject

winex.getCaret(可选指定窗口句柄)

获取指定参数@1指定句柄的窗口光标区块位置,
不指定参数获取前台窗口光标区块位置。
成功返回 ::RECT 结构体,该结构体增加 hwnd 属性存放光标所在窗口句柄。
失败返回 null

不是所有窗口都支持,
winex.caret.get 函数会尝试以更多的方法获取输入光标

winex.getFocus(可选指定父窗口句柄)

获取输指定参数@1指定句柄的窗口输入焦点所在的控件句柄,
不指定参数@1获取前台窗口、输入焦点所在的控件句柄。

如果参数@2为 true 则取不到输入焦点时返回 null,
否则返回叶级窗口或自身

winex.getText(窗口句柄,缓冲区长度,超时值)

取外部程序窗口标题或控件文本,失败或超时返回 null,
缓冲区长度为可选参数,默认自动获取文本长度
超时值为可选参数,默认为 500 毫秒

winex.getUiInfo()

获取UI线程窗口焦点,光标等信息
可选使用参数@1指定目标窗口,省略则默认指定为前景窗口

返回对象:guithreadinfoObject

winex.isHung

判断窗口是否失去响应

winex.isHung(窗口句柄,超时)

判断窗口是否失去响应
超时为可选参数,默认为500毫秒

winex.isUtf16(窗口句柄)

判断窗口是否Unicode窗口

winex.isVisible(窗口句柄)

如果窗口可见并且不是伪装为可见的隐形状态(Cloaked),
返回 true,否则不可见返回 flase,隐形返回 null

winex.match(句柄,文本,类名,ID,超时毫秒)

指定一个窗口句柄,检测是否符合给定参数
所有参数可选,类名与文本支持模式串,

可选指定读取窗口文本超时毫秒数,
超时返回 null 值,否则返回非 null 值

winex.orphanWindow(ctrl,hwnd)

使用 @hwnd 指定句柄的外部窗口作为参数,
调用 aardio 控件对象的 orphanWindow 函数。
使外部窗口附加为控件的悬浮影子窗口,
悬浮影子窗口可将外部进程窗口附加到 @ctrl 并如影随形的自适应缩放调整位置
此函数同时移除外窗口边框,并附加输入线程

winex.quit(输入窗口句柄)

退出程序,发送 _WM_QUIT 消息

winex.removeBorder()

移除窗体边框样式,
参数 @1 指定目标窗口句柄。
如果参数 @2 为 false 则恢复窗口边框

winex.say("发送文本",窗口句柄)

向指定控件窗口发送Unicode编码文本,
省略窗口句柄自动获取焦点窗口

winex.sayAnsi("发送文本",窗口句柄)

向指定控件窗口发送ANSI编码文本,
省略窗口句柄自动获取焦点窗口

winex.sayIme("发送文本",窗口句柄)

向指定控件窗口发送Unicode编码文本,
省略窗口句柄自动获取焦点窗口

winex.sayImeAnsi("发送文本",窗口句柄)

向指定控件窗口发送ANSI编码文本,
省略窗口句柄自动获取焦点窗口

winex.sendString("发送文本",窗口句柄)

向指定窗口上的文本框发送文本,
省略窗口句柄自动获取焦点窗口

winex.setText(窗口句柄,文本)

修改外部程序窗口标题或控件文本

winex.wait(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配)

等待指定窗口创建,所有参数可选
父窗口也可以是所有窗口,参数与winex.findExists相同
成功返回窗口句柄,控件句柄,线程ID,进程ID,超时返回空值

winex.waitActive(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配)

等待指定窗口激活为前台窗口,所有参数可选
控件窗口可以是指定父窗口的所有下级窗口(包括直接子窗口,间接子窗口),
成功返回窗口句柄,控件句柄,线程ID,进程ID,超时返回false

winex.waitActive(窗口句柄)

等待指定窗口激活为前台窗口,所有参数可选
成功返回窗口句柄,超时返回false

winex.waitClose(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配)

等待指定窗口关闭,所有参数可选
成功返回true,超时返回false

winex.waitClose(窗口句柄)

等待指定窗口关闭,所有参数可选
成功返回true,超时返回false

winex.waitDelay

指定winex库所有wait前缀的等待函数的的检测时间间隔;
以毫秒为单位,默认为100毫秒

winex.waitEnabled(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配)

等待指定窗口启用,所有参数可选
成功返回窗口句柄,控件句柄,线程ID,进程ID,超时返回false

winex.waitEnabled(窗口句柄)

等待指定窗口启有,所有参数可选
成功返回窗口句柄,超时返回false

winex.waitEx

在指定父窗口内查找并等待子窗口,

winex.waitEx(所有窗口句柄, ,窗口模式串,标题模式串,控件ID)

使用参数@1指定所有窗口,除所有窗口句柄外所有参数可选,
使用winex.enum枚举指定所有独立窗口,
并且该窗口的所有窗口为参数@1指定的句柄,
返回值为句柄

winex.waitEx(父窗口句柄,第几个匹配,类名模式串,标题模式串,控件ID)

除父窗口句柄外所有参数可选,
使用winex.enum枚举指定父窗口的所有下级窗口(包括直接子窗口,间接子窗口),
返回值为句柄

winex.waitMainWnd

查询符合条件,并且独立不属于其窗口所有的窗体

winex.waitMainWnd(类名模式串,标题模式串,进程ID,线程ID,最大超时)

所有参数都是可选参数
超时以毫秒为单位

winex.waitStyle(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配,指定样式,否定样式)

等待指定的窗口和控件出现指定样式并且移除否定样式
控件窗口可以是指定父窗口的所有下级窗口(包括直接子窗口,间接子窗口),
所有查找参数可选,应至少指定一个选项,
指定样式或否定样式应至少指定一个.

winex.waitStyle(窗口句柄,指定样式,否定样式)

等待指定的窗口和控件出现指定样式并且移除否定样式
指定样式或否定样式应至少指定一个

winex.waitTimeout

指定winex库所有wait前缀的等待函数的默认超时值
以毫秒为单位,默认为null表示永不超时.

winex.waitVisible(父窗口标题,控件文本,父窗口类名,控件类名,控件ID,进程ID,第几个匹配)

等待指定窗口显示,所有参数可选
控件窗口可以是指定父窗口的所有下级窗口(包括直接子窗口,间接子窗口),
父窗口也可以是所有窗口,参数与winex.findExists相同,
成功返回窗口句柄,控件句柄,线程ID,进程ID,超时返回false

winex.waitVisible(窗口句柄)

等待指定窗口显示,所有参数可选
成功返回窗口句柄,超时返回false

guithreadinfoObject 成员列表

guithreadinfoObject.flags

窗口状态 GUI 前缀常量

guithreadinfoObject.hwndActive

活动窗口

guithreadinfoObject.hwndCapture

捕获鼠标事件窗口

guithreadinfoObject.hwndCaret

光标所在窗口

guithreadinfoObject.hwndFocus

键盘输入焦点窗口

guithreadinfoObject.hwndMenuOwner

拥有活动菜单的窗口

guithreadinfoObject.hwndMoveSize

正在被拖动或调整大小的窗口

guithreadinfoObject.rcCaret

光标位置

返回对象:rectObject

自动完成常量

_GUI_CARETBLINKING=0x1
_GUI_INMENUMODE=0x4
_GUI_INMOVESIZE=0x2
_GUI_POPUPMENUMODE=0x10
_GUI_SYSTEMMENUMODE=0x8

Markdown 格式