將網站加入近端網站及設定Office2007針對不符格式檔案警告
前言
我們的Web專案,常常需要請Client端加入近端的網站,所以就依公司之前的資料,再參考[[Javascript]加入信任網域]。另外,因為之前我們的Excel Report都是用Excel存成Html套表後,再改檔名成xls,所以在Office2007中開啟時,都會顯示"您正在嘗試開啟 '0926847.xls',其檔案格式與副檔名所指定的格式不同。開啟檔案之前,請確認檔案未損毀,且來自信任的來源。您現在要開啟檔案嗎?",所以就參考[Excel 2007 error: Different format than specified by the file extension]的做法,加入註冊資訊之中。
實作
因為信任網站還是有些設定要再啟用,加上我們的系統只有內部能用,所以我就改成加入近端的網站! 程式如下,
'程式代號:IE_Internet_Settings.vbs '程式名稱:設定IE 6.0/7.0/8.0 版本的Internet Settings '目 的:Client端使用 '參數說明: '傳回值 : '副作用 :可在 IE 6.0/7.0/8.0版本使用 '************************************************************************* Dim strTrustServer,strTrustPotocal Dim WSHShell Dim strIEversion Set WSHShell=WScript.CreateObject("WScript.Shell") '讀取Client的IE版本 strIEversion = WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent") Dim regEx, retVal '取得設定的是IP還是domainName Set regEx = New RegExp regEx.Pattern = "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" Dim blnIsIP dim urllength dim domain1 '存放網址第一個.的前段 dim domain2 '存放網址第一個.的後段 dim num '找第一個"." Call main Sub main() If (InStr(1, strIEversion, "MSIE 6.0")>0) or (InStr(1, strIEversion, "MSIE 7.0")>0) or (InStr(1, strIEversion, "MSIE 8.0")>0 ) Then If (InStr(1, strIEversion, "MSIE 6.0")>0) Then MsgBox "您的IE瀏覽器版本為6.0版..."& vbcrlf & vbcrlf &"接下來進行調整IE瀏覽器的網際網路選項設定!",,"IE Setting" End If If (InStr(1, strIEversion, "MSIE 7.0")>0) Then MsgBox "您的IE瀏覽器版本為7.0版..."& vbcrlf & vbcrlf &"接下來進行調整IE瀏覽器的網際網路選項設定!",,"IE Setting" End If If (InStr(1, strIEversion, "MSIE 8.0")>0) Then MsgBox "您的IE瀏覽器版本為8.0版..."& vbcrlf & vbcrlf &"接下來進行調整IE瀏覽器的網際網路選項設定!",,"IE Setting" End If Call Init '設定預設資料 Call WriteSyncMode '每次查閱畫面設定 Call WriteFileAutoDown '設定自動提示下載檔案設定為啟用 Call WriteIntraSite '設定近端的網站 Call SetOffice2007NoAlert '設定Off2007不會對檔案格式不符提出警告 Else MsgBox "您的IE瀏覽器版本不為6.0以上版本..."& vbcrlf & vbcrlf &"執行程式不會調整任何瀏覽器的網際網路選項設定, 謝謝!",,"IE Setting" End If End Sub '設定預設資料 Sub Init() '*** 若使用者要加入近端的網站, 則必須修改strTrustServer strTrustServer="it.rmtech.com" '*** 若使用者的協定不為http, 則必須修改strTrustPotocal (ex: https) strTrustPotocal="http" '是否使用IP blnIsIP = regEx.Test(strTrustServer) urllength = Len(strTrustServer) num = InStr(strTrustServer, ".") If blnIsIP = False Then If num > 0 Then domain1=Left(strTrustServer, num-1) domain2=Mid(strTrustServer, num+1) Else domain1 = strTrustServer End If End If End Sub '設定Off2007不會對檔案格式不符提出警告 Sub SetOffice2007NoAlert On Error Resume Next WshShell.RegWrite "HKCU\Software\Microsoft\Office\12.0\Excel\Security\ExtensionHardening","0","REG_DWORD" End Sub '每次查閱畫面設定 Sub WriteSyncMode() On Error Resume Next 'http://www.microsoft.com/taiwan/technet/scriptcenter/resources/qanda/may05/hey0506.mspx '3:每次查閱畫面時, 2:每次啟動 Internet Explorer 時, 4:自動, 0:永遠不檢查 WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\SyncMode5",3,"REG_DWORD" End Sub '將自動提示下載檔案設定為啟用 Sub WriteFileAutoDown() '近端內部網路 WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1\2200",0,"REG_DWORD" '近端的網站 WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2\2200",0,"REG_DWORD" '網際網路 WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\2200",0,"REG_DWORD" End Sub '設定近端的網站 Sub WriteIntraSite() On Error Resume Next '依IP來判斷如何加入近端網站 'IE8是使用Esc, IE6, 7則不用Esc If blnIsIP Then If (InStr(1, strIEversion, "MSIE 7.0")>0) Then WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscRanges\Range102\","" '如果要設定為信任網站,請將1改成2 WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscRanges\Range102\" & strTrustPotocal,"1","REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscRanges\Range102\:Range",strTrustServer Else WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range102\","" '如果要設定為信任網站,請將1改成2 WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range102\" & strTrustPotocal,"1","REG_DWORD" WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range102\:Range",strTrustServer End If Else If (InStr(1, strIEversion, "MSIE 7.0")>0) Then WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\" & domain2,"" WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\" & domain2 & "\" & domain1,"" '如果要設定為信任網站,請將1改成2 WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\" & domain2 & "\" & domain1 & "\" & strTrustPotocal,"1","REG_DWORD" Else WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\" & domain2,"" WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\" & domain2 & "\" & domain1,"" '如果要設定為信任網站,請將1改成2 WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\" & domain2 & "\" & domain1 & "\" & strTrustPotocal,"1","REG_DWORD" End If End If MsgBox "IE瀏覽器的網際網路選項設定已完成!"& vbcrlf & vbcrlf &"請關閉IE瀏覽器,重新開啟!",,"IE Setting" End Sub
參考
Excel 2007 error: Different format than specified by the file extension
範例程式
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^