關鍵字:OLE嵌入,In-Place Activating,IE, Office, Acrobat
除了開啟Internet上的網頁,Internet Explorer還能夠瀏覽本地檔案夾及檔案。如果瀏覽的是PDF文檔或Office文檔,有時候你會發現當調用Navigate("xxx.doc")的時候,Adobe Reader/Acrobat或Office等Document Servers會在IE中嵌入自己的一個執行個體以開啟相應的檔案,當然有時候也會在獨立的Acrobat或Office視窗中開啟檔案。
在Adobe Reader/Acrobat的屬性設定視窗中,我們可以找到“Display PDF in browser”的選項,如果勾上,則Navigate("xxx.pdf")將會以嵌入的方式在IE中瀏覽PDF檔案,否則在獨立的Adobe Reader/Acrobat視窗中瀏覽。但在Office的“選項”對話方塊中我們找不到這樣的設定。
問題:如何在自己的瀏覽器中控制Office這類Ole Servers的開啟檔案?
答案:修改檔案夾選項,或修改註冊表。
方法1、如下所示,從控制台中開啟“檔案夾”選項,在“檔案類型”屬性頁面上找到相應的檔案尾碼名,如“DOC”,點擊“進階”按鈕,在彈出的“編輯檔案類型”對話方塊中有“在同一視窗中瀏覽”的選項,如果勾上,則以嵌入IE的方式開啟文檔,否則在獨立視窗中開啟。
方法2、直接修改註冊表。
在“HKEY_LOCAL_MACHINE/SOFTWARE/Classes”索引值下,儲存了各種檔案類型的註冊資訊,以Office文檔為例,與文檔相關索引值如下。
文件類型 索引值
Microsoft Excel 7.0 worksheet Excel.Sheet.5
Microsoft Excel 97 worksheet Excel.Sheet.8
Microsoft Excel 2000 worksheet Excel.Sheet.8
Microsoft Word 7.0 document Word.Document.6
Microsoft Word 97 document Word.Document.8
Microsoft Word 2000 document Word.Document.8
Microsoft Project 98 project MSProject.Project.8
Microsoft PowerPoint 2000 document PowerPoint.Show.8
如果我們要修改Word文檔的開啟檔案,,則在“HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Word.Document.8”下建立一個名為“BrowserFlags”,類型為“REG_DWORD”的子索引值,如果設定其值為“8”,則在獨立的視窗中開啟Word文檔,否則在嵌入IE的Word視窗中開啟文檔。
註:Microsoft Excel 7.0 worksheet稍有不同,應設定BrowserFlags的值為“9”方可在獨立的視窗中開啟文檔。
參考資料:
MSDN:259970:In-Place Activating Document Servers in Internet Explorer
MSDN:162059:How to configure Internet Explorer to open Office documents in the appropriate Office program instead of in Internet Explorer
引用地址:Internet Explorer 編程簡述(二)在IE中編輯OLE嵌入文檔