直接上代码先看效果: 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) );
上面这种写法是将 py3.export 作为类的名字空间使用 —— 并定义静态的成员对象,而这些类的静态成员对象就自动成为 Python 中可以使用 import 语句引入的 aardio 函数库模块( 这些模块只应当包含普通的自定义函数)。 var pyCode = /** import aardio; def testPy(): aardio.exportFunction () **/
//运行Python代码 py3.exec( pyCode ); 这种导出函数库模块的名称不一定要是 'aardio',你可以修改为其他模块名称。要注意这种方式导出的只是纯函数库模块,其参数与返回值的交互转换规则仍然遵守 Python 扩展库的默认规则: 1、Python 对象传入 aardio 是传址2、aardio 对象传入 Python 是传值 而新增的 py3.export () 则提供了全新的方式,让 aardio 对象以传址的方式传入 Python —— 以实现在 Python 中直接调用、控制 aardio 对象。这些是最新版本 Python 扩展库提供的功能( aardio 中的 Python 扩展库包含 py3,py2,py 等扩展库,覆盖 Python 各主要版本,功能与接口保持兼容并同步更新 ),相关的范例、文档已更新。 |
|