1、何時進行手工卸載和安裝
一般情況下應該讓客戶端自動控件,這樣當服務器控件版本更新時,客戶端可以獲得自動升級方面的好處。但是,如果因為客戶機配置有問題,或者有其它攔截工具攔截的原因無法自動安裝控件,您可以采取本文描述的方法進行手工卸載和安裝。具體請參考本文相關文檔。
2、手工卸載NTKO OFFICE文檔控件的步驟:
1)執行如下步驟之前最好重新啟動計算機。如果不重新啟動,請確保關閉所有瀏覽器以及可能使用控件的開發工具,比如Visual Studio.Net.如果任務管理器中存在iexplorer.exe進程,則終止它。這樣做可以保證系統中不存在使用控件的進程,以避免卸載/刪除失敗。
2)刪除c:\windows(winnt)\downloaded program files目錄下的 NTKO OFFICE文檔控件(未授權演示版)。
3)將officecontrol.cab中的officecontrol.ocx解開,拷貝到比如:c:\officecontrol.ocx 4)從命令行運行: regsvr32 /u c:\officecontrol.ocx 就可以徹底卸載控件。
3、手工安裝NTKO OFFICE文檔控件的步驟:
1) 將officecontrol.cab中的officecontrol.ocx解開,拷貝到比如:c:\officecontrol.ocx 2)從命令行運行: regsvr32 c:\officecontrol.ocx
網頁中引用NTKO OFFICE文檔控件的<object>標記各個部分的含義
對於HTML代碼中引用控件的如下代碼:
<object id="TANGER_OCX" classid="clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404" codebase="/path/to/OfficeControl.cab#version=4,0,0,5" width="100%" height="100%"> <object>標記中各個部分的含義如下:
1) id="TANGER_OCX"標識控件的JavaScript編程標識,通過document.all("TANGER_OCX")即可得到對控件對象的引用。
2)clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404標識NTKO OFFICE文檔控件的唯一標識。瀏覽器通過這個clsid來判斷訪問網頁的客戶機是否已經安裝控件。
3)在codebase="/path/to/OfficeControl.cab#version=4,0,0,5" 中,前面的
/path/to/OfficeControl.cab部分,標識控件自動安裝文件在服務器上相對當前網頁的URL位置,而#version=4,0,0,5部分標識該網頁需要的控件版本號。
為了能夠讓控件自動安裝,以上各個部分必須正確,尤其是clsid,codebase=之后的URL部分,以及#version=部分。
<div style="display:none" id="excelcontent">
<object id='TANGER_OCX_OBJ' classid='clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404' codebase='../../Common/OfficeControl.ocx' width='100%'>
<param name='BorderStyle' value='1'/>
<param name='Statusbar' value='true'/>
<param name='TitleBar' value='false'/>
<param name='ToolBars' value='false'/>
<param name='Menubar' value='true'/>
<param name='IsUseUTF8URL' value='-1'/>
<param name='IsUseUTF8Data' value='-1'/>
<param name="ProductCaption" value="a"/>
<param name="ProductKey" value="C9BC4DFF-4248-4a3c-8A49-63A7D317F404"/>
<param name="MakerCaption" value="b"/>
<param name="MakerKey" value="C9BC4DFF-4248-4a3c-8A49-63A7D317F404"/>
<param name='WebUserName' value='c'/>
<param name='Caption' value='歡迎使用!'/>
</object>
</div>
Ext.getDom("excelcontent").style.display = "block";
this.browsofficwin.show();
var nid = id;
Ext.MessageBox.wait("數據加載中......", "系統提示");
Ext.Ajax.request({
url: "/Com/ReadOne",
params: { id: nid },
method: "post",
scope: this,
success: function (o) {
var result = Ext.decode(o.responseText);
Ext.MessageBox.hide();
var TANGER_OCX_OBJ = document.getElementById("TANGER_OCX_OBJ");
var p = "/Upload/Cache/shangpu.doc";
TANGER_OCX_OBJ.OpenFromURL(p);
},
failure: function (o) {
//Ext.Msg.alert("提示信息", "信息提取失敗!");
return;
}