2007年9月29日 星期六

[轉貼]CreateObject 函數或 ActiveXObject 函數可能會在 InfoPath 2003 中產生指令碼錯誤

 

[轉貼]CreateObject 函數或 ActiveXObject 函數可能會在 InfoPath 2003 中產生指令碼錯誤

文章編號 : 832512
上次校閱 : 2006年2月16日
版次 : 2.0

徵狀

您可以使用 Microsoft VBScript CreateObject 函數或 Microsoft JScript ActiveXObject 函數來建立 ActiveX 元件的執行個體。如果您在呼叫 Microsoft Office InfoPath 2003 表單的函數的指令碼模組中建立 ActiveX 元件的執行個體,可能會收到下列其中一個錯誤訊息:
自動化伺服程式無法產生物件
ActiveX 元件無法產生物件

回此頁最上方

發生的原因

InfoPath 2003 表單一定會在 Internet 安全性區域的內容中執行。Internet 安全性區域會定義表單中的指令碼可以執行的動作以及表單中的指令碼不能執行的動作。一般而言,發生這個錯誤是因為如果 ActiveX 元件未標示為安全的不受信任指令碼安全的不受信任初始化,表單執行的 Internet 安全性區域便不允許建立 ActiveX 元件。這表示控制項的作者沒有證明如果有惡意指令碼或惡意資料時,元件不會損壞您的系統。

如需有關安全性區域如何影響表單對您電腦上的資源所具有的存取層級的詳細資訊,請按一下 [說明] 功能表上的 [Microsoft Office InfoPath 2003 說明],在 [輔助中心] 窗格的 [搜尋] 方塊中輸入關於安全性區域,然後按一下 [開始搜尋] 以檢視主題。
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
216434 (http://support.microsoft.com/kb/216434/) INFO: How Internet Explorer Determines If ActiveX Controls Are Safe

回此頁最上方

解決方案

如果要解決您的 InfoPath 2003 表單中的這個問題,請使用下列其中一種方法:
讓表單成為完全信任的 URN 表單。
在 Microsoft Internet Explorer 的信任網站清單中加入主控 InfoPath 2003 表單的伺服器的 URL。
數位簽署表單範本。(適用於 InfoPath 2003 SP1)

讓表單成為完全信任的 URN 表單

完全信任的 URN 表單必須使用自訂安裝指令碼或 Microsoft System Installer 套件安裝在您的電腦上。這樣即使 ActiveX 元件未標示為安全的不受信任指令碼安全的不受信任初始化,亦允許建立 ActiveX 元件。

您可以將標準表單手動轉換成 URN 表單。然而,手動轉換的工作很冗長,而且容易出錯。您也可以使用 InfoPath 2003 Software Development Kit (SDK) 隨附的命令列表單登錄工具 - RegForm.exe 工具,將標準表單轉換成 URN 表單。RegForm.exe 工具會對表單定義檔案及 XML 範本檔案進行必要的變更。然後 Regform.exe 工具會將檔案重新封裝成 .xsn 檔案,再建立自訂安裝程式來安裝修改後的表單範本。

如需有關如何下載 InfoPath 2003 SDK 的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=351f0616-93aa-4fe8-9238-d702f1bfbab4 (http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=351f0616-93aa-4fe8-9238-d702f1bfbab4)
InfoPath 2003 SDK 的預設安裝位置為 C:\Program Files\Microsoft Office 2003 Developer Resources\Microsoft Office InfoPath 2003 SDK\Tools。

如果要查看命令列選項,請在 [命令] 視窗中輸入下面的命令列:
regform /?
請注意命令列中 /U 參數和 /T 參數的使用。/U 參數會指定用於表單範本的 URN。/T 參數會指定表單範本是完全信任的。如此會將表單定義 (.xsf) 檔案中的 requireFullTrust 屬性設定為「是」。

下面的命令列會在和您正在轉換的範本相同的資料夾中產生 .js 檔案和 .bak 檔案:
regform /U urn:MyForm:MyCompany /T Yes C:\MyForms\MyTrustedForm.xsn
.bak 檔案是進行 URN 變更之前的原始表單範本檔案的複本。.js 檔案是可以用於安裝 URN 表單的指令碼檔案。

如果要執行 .js 指令碼,請在命令列輸入下列程式碼,然後按 ENTER:
Cscript <full path of your .js file>
如需關於 URN 表單或 RegForm.exe 工具的詳細資訊,請參閱 InfoPath 2003 SDK 說明文件中的「使用表單登錄工具」主題。

在 Microsoft Internet Explorer 的信任網站清單中加入主控 InfoPath 2003 表單的伺服器的 URL

當您加入主控 InfoPath 2003 表單的伺服器的 URL 作為信任的網站時,會在執行程式碼時收到下面的訊息:
這個畫面上某個 ActiveX 控制項與其他部份相互作用時可能會不安全。要允許相互作用?
如果您按一下 [是],程式碼便會執行。如果您按一下 [否],可能會收到<徵狀>一節中所提及的錯誤訊息,而程式碼將不會執行。

如果要新增網站作為信任的網站,請執行下列步驟:
1. 啟動 Internet Explorer。
2. [工具] 功能表上,按一下 [網際網路選項]
3. [網際網路選項] 對話方塊中,按一下 [安全性] 索引標籤。
4. [安全性] 索引標籤上,按一下 [信任的網站]
5. 按一下 [網站]
6. [將此網站加到該區域] 文字方塊中,加入主控 InfoPath 2003 表單的伺服器的 URL。

例如,如果主控 InfoPath 2003 表單的伺服器的名稱為 MyServer,您必須加入文字方塊中的 URL 則為 http://MyServer
7. 按一下 [新增]

這會將新輸入的網站加入 [網站] 清單方塊中。
8. 按兩次 [確定]

如此便會確認變更,然後關閉對話方塊。

數位簽署表單範本

此適用於 InfoPath 2003 Service Pack 1。如果您使用信任的憑證簽署表單範本,可以將表單範本的安全性層級設定為「完全信任」。「完全信任」表示表單可以存取使用者電腦或不同網域中的檔案和設定。此外,您可以使用電子郵件程式將表單範本和更新後的表單範本傳送給他人,以部署及更新表單範本。

如果要使用信任的憑證數位簽署表單,請執行下列步驟:
1. 在「設計」模式中,按一下 [工具] 功能表中的 [表單選項]
2. [表單選項] 對話方塊中,按一下 [安全性] 索引標籤。
3. [表單簽署] 下,按一下以選取 [簽署此表單] 核取方塊。
4. 按一下 [選取憑證]
5. [選取憑證] 對話方塊中,按一下您要用於數位簽署表單的憑證。
注意 如果憑證在使用者的電腦上不受信任,Microsoft Office InfoPath 2003 會顯示安全性訊息,並要求使用者要先啟用對憑證發行者的信任,才能開啟表單。

回此頁最上方

参考

如需有關如何取得 Microsoft Office 最新版 Service Pack 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
870924 (http://support.microsoft.com/kb/870924/) 如何取得 Office 2003 的最新 Service Pack

回此頁最上方


這篇文章中的資訊適用於:
Microsoft Office InfoPath 2003
Microsoft Office InfoPath 2003, Service Pack 1 (SP1)

回此頁最上方

關鍵字: 
kbdownload kbprb kbautomation kbnofix KB832512

回此頁最上方

Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
 

沒有留言: