應該有不少人知道,Adobe ExtendScript Toolkit(簡稱ESTK,譯為指令碼拓展工具包)是用來編寫ExtendScript指令碼的吧,支援這種特殊指令碼的Adobe產品有AE、PS等(當然不是所有Adobe產品都有指令碼拓展的功能啦,另外,Flash使用的是ActionScript指令碼哦)。不過,這個功能強大的指令碼編寫工具也是會有一些這樣或者那樣的問題呢,這就是本文章的寫作動機啦。
工具/原料
電腦
Adobe ExtendScript Toolkit
方法/步驟
問題一:該指令碼拓展工具包的某些功能不可用,比如下圖:
在這裡,物件模型檢視器無法使用。這會導致某些功能異常,比如,在輸入程式碼時該有的提示沒有出現。看下圖:
而正常使用的時候,它是有輸入提示的,類似於VS 2010裡面的外掛“Visual_Assist_X”,這個對程式碼的輸入與檢查的作用是非常大的。少了這些提示,會多走許多彎路呢。下面是正常使用時如下:
導致它出現的根本原因是缺少了物件模型檢視器的一些重要配置檔案,以下情況下會導致它的缺失:
一:使用了綠色版的指令碼拓展工具包(ExtendScript Toolkit),而且裡面缺少了一些重要檔案,可能是綠化作者沒有注意到而導致的異常。
二:安裝了指令碼拓展工具包,但是由於某些原因(如,病毒、系統執行異常、清理垃圾……)把那些檔案給清除了。
解決方法是,將它所缺失的檔案找回來,主要是兩個個資料夾(“APE”、“Scripting Dictionaries XXX”),按提示將需要的資料夾拷貝到相應的目錄即可。如下圖所示:
最終,在”C:\Program Files (x86)\Common Files\Adobe”目錄下應該有這兩個檔案,如下圖紅色的標記所示:
將這些檔案放置到正確的位置之後,就可以看到物件模型檢視器能夠正常使用了(我們在編寫Adobe指令碼的時候,通過這個物件模型檢視器可以查閱所需要的API、方法了),而且程式碼的輸入提示也有了。如下圖:
問題二:那就是指令碼拓展工具無法使用,如下圖所示:
當我們點選右上角的關閉圖示時,會顯示無法響應,當多次點選關閉時,這個指令碼拓展工具包就自動關閉了,如下圖:
這個問題多出現在Adobe產品的試用期差不多結束時;或者是使用破解後的Adobe產品。另外,這個問題也不是在一開始就出現的,大部分都是在使用一段時間後才會出現,而且這種情況下,你的電腦上不僅僅有這個指令碼拓展工具包,同時也有Adobe公司的其它產品,如PS、AE……,另外,經常是同版本的,比如你的電腦上有ExtendScript Toolkit CC的同時,也有After Effect CC或者PhotoShop CC。
現在,有一種比較愚蠢的做法就是將這個指令碼拓展元件安裝到虛擬機器上執行,因為,這個指令碼拓展工具包的安裝包是使用者自行到網上下載的,因此它可以在沒有安裝過Adobe產品的虛擬機器上安裝而且執行。(貌似這個方法也是不能完全解決這個問題的)
當然,接下來的方法就是我提倡的啦:一旦彈出了這個“Help Improve Adobe's Product”訊息視窗(譯為:“Adobe產品改進計劃……”),找到該程式的安裝目錄,把AdobePIP.dll刪除即可。
以下是我發現這個方法的一個過程:
由於某天我心血來潮,打算找出哪些檔案在刪除之餘又毫不影響ESTK的實用功能。而在測試過程中,我下載了幾個ESTK版本(ESTK CS5、ESTK CS6、ESTK CC 2013),發現,只有ESTK CC才會彈出這個“Help Improve Adobe's Product”視窗,而且,與ESTK CC的安裝目錄下的AdobePIP.dll有直接聯絡,這個動態連結庫以及訊息視窗在CC版出現之前是沒有的,後來,還發現這個導致ESTK異常關閉的視窗提示,在正常情況下,通過執行“幫助”----“Adobe 產品改進計劃……”命令也可以開啟(當然,中英文版本的文字顯示有別啦),而且AE、PR、PS等其他Adobe CC系列產品也是這樣呢。如圖所示:
綜上所述,只要把那個AdobePIP.dll刪除啦,這個視窗就不會再出現啦。
問題三:“點選連線到目標應用程式”功能異常,如圖所示:
正常執行這個功能的情形是這樣的,彈出了“等待,按ESC鍵中止……”訊息框後,就能開啟相應程式啦,此時ESTK就會與這個Adobe產品產生動態連線,並且ESTK的資料瀏覽器也會自動重新整理。如圖所示:
這個功能可以讓使用者在ESTK裡間接啟動PS、AE、PR等Adobe產品,並且,讓正在除錯的指令碼在已連線的Adobe產品中直接執行,這是一種高階的指令碼除錯技巧,因為使用這個方法,我們不僅僅實現了錯誤程式碼的檢測還能快速在AE、PS裡執行指令碼。至於能夠啟動哪些Adobe產品呢,並且能與之相連線,這就需要檢視那個下拉列表啦,如圖所示:
關於這個問題的解決方法,其實也是與“Adobe PCD”資料夾有直接關係滴,而且與該資料夾下的pcd.db關係最大。當我們以“用記事本方式開啟”命令來檢視這個pcd.db檔案時,如圖所示:
由圖可知,這個pcd.db檔案是一個數據庫檔案,我使用SQLite Developer來讀取這個資料庫檔案資訊,得到以下本人以為相當重要的資料資訊(當然是與ESTK裡“點選連線到目標應用程式”功能相關的資料資訊啦)如圖所示:
本人認為,在此圖中“AMTConfigPath”、“SupportsESTK”、“BridgeTalkCode”、“ExecutableBasename”和“DisplayName”這5個key所對應的列的資訊都是相當重要的,Adobe產品的安裝路徑、Adobe產品能夠支援“點選連線到目標應用程式”這種間接啟動方式的開關等資訊都是存放在value裡,例如,僅當“SupportsESTK”為true,且“AMTConfigPath”所儲存的路徑上的確是有相關軟體的安裝目錄,當兩者同時符合條件時,這個“點選連線到目標應用程式”的命令才能正常執行。
所以,本人為這類問題提供的方法如下:
當發現這個“點選連線到目標應用程式”命令異常後,找到相應版本的“Adobe PCD”資料夾(可以向親朋好友或者到網上求網友上傳符合條件的Adobe PCD資料夾),接著使用SQLite Developer來載入這個pcd.db檔案,在SQLite Developer裡,通過“pcd----表(10)----domain_data”來開啟這個資料庫資訊,再到“資料”頁面檢視“AMTConfigPath”與“SupportsESTK”兩個key的value,將裡面的資訊按模板圖片裡的格式修改即可,當然,具體的路徑一定要根據實際情況來設定啦。如圖所示:
問題四:我的ESTK是英文版的,想將它改成中文版的,應該怎麼辦?
我們知道,Adobe官方自從推出了CC系列之後,就開始提供中文版的Adobe產品給我們這些中國使用者下載安裝啦,但是不知何故,對於這個ESTK,卻是遲遲沒有推出中文語言包,這著實讓我大大地鬱悶了一段時間。其實,我們可以通過模仿官方提供的其他語言包自己手動製作一箇中文語言包的(其實只需要將en_US.dat以及extendscript-en_US.dat漢化就可以啦),如圖所示:
製作好中文語言包後,把其他語言包刪除(建議你保留英文版的語言包吧,或者是把其他語言包打包壓縮後放置在一旁),重新啟動ESTK就可以看到勞動成果啦。如圖所示:
不過,個人建議,不要將ESTK中“物件模型檢視器”的字串漢化啦,否則可能將會出現這種情況。如圖所示:
以上是日文版的字串顯示情況,中文版與之相似,在某些地方字串給漢化後,將不會顯示出來,這個問題會導致“物件模型檢視器”的書籤功能以及搜尋功能都不可用。不過,這個問題,不是出現在所有的語言版本里的,如法文版,如圖所示:
因此,本人建議諸位,不要漢化物件模型檢視器裡的字串,避免出現上述情況。最終效果下圖所示:
注意事項
我們在安裝那些Adobe產品時,在軟體的安裝過程中,會自動將一些重要資訊新增到pcd.db這個資料庫檔案裡的,當然啦,解除安裝時也會自動修改這個檔案滴。
資料庫檔案不能以記事本的方式開啟後直接修改,一定要通過SQLite Developer等專門用來修改資料庫檔案的軟體來修改,否則,新得到的資料庫檔案將無法使用。
其實,就算“物件模型檢視器”不可用,在ESTK裡,其類似“Visual_Assist_X”的程式碼輔助功能也是可以部分顯示的,可惜的是,這樣一來,這個程式碼輔助功能就不是完整的啦。