調用Win32API的函數
TC能調用那些Win32平臺通用的函數,包括Windows 95、Windows 98、Windows NT,Windows 2000和Windows XP,不能調用那些只在Windows NT,2000,XP或Windows Server 2003才有的函數。
在腳本編輯時,輸入Win32API關鍵字后,使用Code Completion,會列出所有支持的函數調用。
調用Win32API的函數時需要注意兩點:
1、 因為Microsoft OLE不支持指針,所以你不能使用那些有指針參數的或者是返回指針給數據結構的API函數。有一個例外是:在某些函數,你可以傳入0作為指針值。這個技巧可以幫助你調用某些特定的函數,例如CreateDC。
但是,這個限制對那些使用數據結構的函數不生效。Win32API對象包括某些特定的方法(例如_DOCINFO)創建一個編程對象,為數據結構提供一個腳本接口。然后,你可以使用這個對象來填充結構區域并且傳遞這些結構給函數作為參數。例如,你可以調用_DOCINFO來為DOCINFO結構創建一個對象然后傳遞這個對象給StartDoc函數作為參數。
2、 如果一個參數是作為引用傳遞的并且用于返回值,則返回值對于TC腳本而言無效。但是如果傳入的引用參數是一個結構,那么你可以使用這種類型的API函數。TC提供一些包裝的對象(Wrapper Object),即預定的結構,當然你也可以自己定義結構。
例如,你可以使用TRect結構如下:
structRect := TRect;
這個包裝對象包含跟結構成員一致的屬性,使用相同的名稱。例如,下面腳本設置TRect結構的left和top邊界值:
structRect.Left := 10;
structRect.Top := 10;
調用.NET Assembly的函數
在TC腳本中你可以調用任何.NET assembly中的函數?梢允.NET Framework的,也可以是第三方.NET程序的。
為了調用.NET Assembly的函數,先要在CLR Bridge的屬性頁選中使用assembly。
在腳本中使用dotNET對象訪問assembly提供的屬性或方法。調用格式如下:
dotNET.namespace.class.subclass.method()
dotNET.namespace.class.subclass.property
注意:namespace和class、subclass的名稱之間用點隔開,而namespace名稱中包含的分隔點要用下劃線替換。
如果類的實例不存在,你只能調用這個類的靜態方法。要想調用屬性和非靜態方法,你應該首先通過這個類的構造器創建一個實例。通常類構造器的名稱是_ctor。一個類可以有多個構造器(_ctor(),_ctor2(),_ctor3()等)。
但是在VBScript中不能識別由下劃線開頭的標識符,因此為了讓_ctor方法與VBScript兼容,TC修改了這些方法的名稱,替換成z開頭,例如調用_ctor3,則應該使用zctor3。
下面例子說明如何在腳本中從mscorlib assembly創建String對象并調用其方法:
procedure AssemblyTest;
var
文章來源于領測軟件測試網 http://www.kjueaiud.com/