COM Scripting
Introduction
Scriptom是由Guillaume Laforge開發(fā)的一個(gè)可選Groovy模塊。一旦在的Groovy環(huán)境中安裝上,你就能夠在Groovy中應(yīng)用一個(gè)包裝器來為任何ActiveX或者COM組件寫腳本。當(dāng)然了,這個(gè)模塊只能在Windows下用。
Installation
安裝Scripttom的最簡(jiǎn)單方式是將這個(gè)ZIP包解壓到你的GROOVY_HOME目錄下。
這個(gè)包內(nèi)含了jacob.jar、jacob.dll和scriptom.jar. DLL文件要放在bin目錄下,亦或是你的java.libray.path下,以備jacob.jar調(diào)用裝載。
Building from sources
如果你足夠勇敢并傾向于從CVS Head中獲取最新版本,那么你可以從源代碼構(gòu)建。檢出 /scriptom 模塊并用Maven自動(dòng)完成安裝。
如果你的GROOVY_HOME正指向你的groovy-core的源代碼安裝目錄,僅鍵入:
maven
另外,若已將Groovy安裝在了一個(gè)不同的目錄,你有兩種選擇,在文件project.properties里將屬性groovy.install.staging.dest指向你的GROOVY_HOME目錄,并運(yùn)行Maven,或者鍵入:
maven -Dgroovy.install.staging.dest=%GROOVY_HOME%
Usage
讓我們看一下如何針對(duì)IE瀏覽器寫腳本。首先,我們當(dāng)然是要將ActiveX代理類引入進(jìn)來。
然后,我們將創(chuàng)建一個(gè)jacob中ActiveXComponent類的GroovyObjectSupport包裝器。現(xiàn)在,我們即將應(yīng)用(調(diào)用)這個(gè)組件的屬性或者是方法。












注意explorer.Visible返回的是一個(gè)代理,如果你想獲取屬性的真正的值,你要用這樣的表達(dá)式:explorer.Visible.value 或explorer.Visible.getValue().
Limitations
目前,Scriptom處于beta階段,故你在應(yīng)用ActiveX或COM組件時(shí)可能會(huì)遇到一些bug和限制,不要猶豫,請(qǐng)將bug發(fā)表到JIRA或是郵件列表上。
第一個(gè)版本最大的一個(gè)不足(局限)是仍然還不能訂閱你正在應(yīng)用組件的事件。在下一個(gè)版本中,我希望能夠讓你能用閉包來定義自己的事件捕捉。象下面這樣:








但是現(xiàn)在仍然不支持事件回調(diào)。在目前的CVS里有一個(gè)實(shí)驗(yàn)性的參考實(shí)現(xiàn)。它不能通過Groovy命令執(zhí)行,但是可以在Java程序里透過GroovyShell對(duì)象來運(yùn)行。
Samples
如果你檢出了Scriptom的源代碼,你會(huì)在src/script目錄下發(fā)現(xiàn)幾個(gè)例子。
我將下面的幾個(gè)小節(jié)中向你展示一些例子。
Scripting Internet Explorer



















Scripting Excel


































警告:在我的機(jī)器(WinXP Home),仍然會(huì)有一個(gè)Excel.exe進(jìn)程在運(yùn)行,我對(duì)此仍無線索。:(
Mixing VBScript or JScript with Groovy








Scripting the Windows Shell object































Scripting Windows Media Player



































當(dāng)事件回調(diào)被支持后,你就能夠訂閱player.statusChange事件,以便你能夠完整地播放wav。
Converting a Word document into HTML
這個(gè)程序?qū)⒁粋€(gè)word文件作為第一個(gè)參數(shù),并且生成一個(gè)同名的HTML文件,只是擴(kuò)展名為".html"








注意里面的參數(shù) 8,這就是轉(zhuǎn)換后的HTML文件格式,具體為









posted on 2005-02-24 17:53 carob 閱讀(930) 評(píng)論(0) 編輯 收藏 所屬分類: Groovy