[python与aardio] 在py中使用aardio com接口

By mouse at 2021-10-15 • 0人收藏 • 408人看过

python虽有win32com相关库, 但有各种版本问题, 试了好久没搞定,最后决定使用aardio的com, 发现用起来非常方便, 故分享下


import console
import com;
console.open()
import py3;
var objs = {};
py3.export.aardio = {
	create = function(name){objs[name] = com.CreateObject(name)};
	call = λ(objName, fnName, ...) objs[objName][fnName](...); 
}

py3.exec(`
import os,aardio
class aardioCom:
    def __init__(self, objName):
        self.objName = objName
        aardio.create(objName)	
    def __getattr__(self, fnName):
        return lambda *args: aardio.call(self.objName, fnName, *args)

dm = aardioCom("dm.dmsoft");#创建大漠对象, 需要先注册
dm.moveTo(200,700)	#移动鼠标看看
path = r'c:\tmp.png'
#截图并查看	
dm.CapturePng(0,0,2000,2000,path)
os.system(path)

wsh = aardioCom("wscript.shell")
wsh.exec("notepad")	#运行记事本

fs = aardioCom("Scripting.FileSystemObject")
fs.DeleteFile(path)	#删除图片
`)

console.pause(true);


4 个回复 | 最后更新于 2021-10-26
2021-10-21   #1

其实还可以这样玩,把整个窗体文件扔进一个大的函数里,放在py3.export中,然后也是可以在py3中直接运行原有窗体程序的,虽然好像没什么作用。

import win.ui;
import py3;

py3.export.main = {
	themain = function() {
	
		/*DSG{{*/
		mainForm = win.form(text="xxx";right=970;bottom=390)
		mainForm.add(//xxx
		)
		/*}}*/
		
		//省略程序其余部分。。。
		
		
		
		mainForm.show();
		return win.loopMessage();
		
	};
};

pycode = /**
import main
main.themain()

**/

py3.exec(pycode);


2021-10-26   #2

Python 扩展库已改进,现在写起来更省事了:

import com;  
import winex; 
import py3;
 
var pyCode = /** 
def testPy(com,winex):
    # 在 Python 里直接使用 aardio 对象,简单得就像在 aardio 里调用 aardio 对象
    wsh = com.CreateObject("wscript.shell")
    wsh.exec("notepad") 
    
    # 直接调用 aardio 标准库函数
    winex.wait(None,None,"Notepad","Edit");
    
    # 直接使用 aardio 创建的迭代器
    for(hwnd,title,threadId,processId) in winex.each("Notepad"):
        hCtrl = winex.findEx(hwnd,None,"Edit")
        winex.sendString("测试一下",hCtrl)
**/

//执行Python代码
py3.exec( pyCode ); 

//用 py3.export(com) 直接将 aardio 对象完整导入 Python
py3.main.testPy( 
py3.export(com),
py3.export(winex) 
);


2021-10-26   #3

回复#2 @jacen :

谢谢老大!太方便了!

2021-10-26   #4

太棒了!

登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前在学aardio+halcon机器视觉.
AARDIO语言QQ群:70517368
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
C大Aardio论坛:Aar爱好者论坛
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
赞助商:才仁机械




Loading...