直接上代碼先看效果: import com; import winex; import py3; var pyCode = /** def testPy(com,winex):
# 在 Python 里直接使用 aardio 對象,簡單得就像在 aardio 里調(diào)用 aardio 對象 wsh = com.CreateObject('wscript.shell') wsh.exec('notepad') # 直接調(diào)用 aardio 標(biāo)準(zhǔn)庫函數(shù) winex.wait(None,None,'Notepad','Edit'); # 直接使用 aardio 創(chuàng)建的迭代器 for(hwnd,title,threadId,processId) in winex.each('Notepad'): hCtrl = winex.findEx(hwnd,None,'Edit') winex.sendString('測試一下',hCtrl) **/
//# 執(zhí)行Python代碼 py3.exec( pyCode );
//# 用 py3.export(com) 直接將 aardio 對象完整導(dǎo)入 Python py3.main.testPy( py3.export(com), py3.export(winex) );
上面這種寫法是將 py3.export 作為類的名字空間使用 —— 并定義靜態(tài)的成員對象,而這些類的靜態(tài)成員對象就自動(dòng)成為 Python 中可以使用 import 語句引入的 aardio 函數(shù)庫模塊( 這些模塊只應(yīng)當(dāng)包含普通的自定義函數(shù))。 var pyCode = /** import aardio; def testPy(): aardio.exportFunction () **/
//運(yùn)行Python代碼 py3.exec( pyCode ); 這種導(dǎo)出函數(shù)庫模塊的名稱不一定要是 'aardio',你可以修改為其他模塊名稱。要注意這種方式導(dǎo)出的只是純函數(shù)庫模塊,其參數(shù)與返回值的交互轉(zhuǎn)換規(guī)則仍然遵守 Python 擴(kuò)展庫的默認(rèn)規(guī)則: 1、Python 對象傳入 aardio 是傳址2、aardio 對象傳入 Python 是傳值 而新增的 py3.export () 則提供了全新的方式,讓 aardio 對象以傳址的方式傳入 Python —— 以實(shí)現(xiàn)在 Python 中直接調(diào)用、控制 aardio 對象。這些是最新版本 Python 擴(kuò)展庫提供的功能( aardio 中的 Python 擴(kuò)展庫包含 py3,py2,py 等擴(kuò)展庫,覆蓋 Python 各主要版本,功能與接口保持兼容并同步更新 ),相關(guān)的范例、文檔已更新。 |
|