天天看点

Aardio 外部窗口基本操作 (2)

winex库是win库的扩展,主要用作外部窗口的控制,下面是常用的一些操作

//winex是win库扩展,结合win库实现外部窗口操作
import winex
import process

process.executeWaitInput("notepad.exe")

/*窗口查找函数{{*/
//遍历所有顶层窗口
for hwnd,title,threadId,processId in winex.each( "", ".*" ) {
	//以标题来判断窗口 
	if string.find(title,"记事本") win.msgbox(title,hwnd)	
}

//以下窗口查找,支持模糊匹配,查找条件基本一致(窗口句柄,窗口文本,类名,控件id等)
if winex.findExists(,,"Notepad") win.msgbox("记事本窗口存在")
//winex.find 查找窗口
//winex.findEx 查找控件
//winex.findActivate //查找并前置窗口(最小化无效)
//winex.waitActive 等待窗口激活
//winex.waitStyle 等待指定窗口样式出现
//winex.waitEnabled 等待指定窗口启用
//winex.waitVisible 等待指定窗口显示
var $hwnd,$hEdit = winex.wait(,,"Notepad","Edit")
/*}}*/


win.setForeground($hwnd) 
win.delay(2000)

/*以消息形式发送文本{{*/
//发送WM_SETTEXT消息,会清除之前的会文本,焦点不会变化
winex.setText($hwnd,"我是新窗口标题")
winex.setText($hEdit,'你好啊,后台发送可以吗\r\n')
//发送EM_REPLACESEL消息
winex.sendString('当然是可以的\r\n',$hEdit)
//发送WM_CHAR消息
winex.say('我还是一个个打字吧\r\n',$hEdit)
/*}}*/

//向窗口发送BM_CLICK点击消息,通常是按钮控件
winex.click($hEdit) 

//关闭窗口
//winex.close($hwnd)