將網站加入近端網站及關閉Office2007針對不符格式檔案警告

將網站加入近端網站及設定Office2007針對不符格式檔案警告

前言

我們的Web專案,常常需要請Client端加入近端的網站,所以就依公司之前的資料,再參考[[Javascript]加入信任網域]。另外,因為之前我們的Excel Report都是用Excel存成Html套表後,再改檔名成xls,所以在Office2007中開啟時,都會顯示"您正在嘗試開啟 '0926847.xls',其檔案格式與副檔名所指定的格式不同。開啟檔案之前,請確認檔案未損毀,且來自信任的來源。您現在要開啟檔案嗎?",所以就參考[Excel 2007 error: Different format than specified by the file extension]的做法,加入註冊資訊之中。

image

實作

因為信任網站還是有些設定要再啟用,加上我們的系統只有內部能用,所以我就改成加入近端的網站! 程式如下,

'程式代號: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

參考

[Javascript]加入信任網域

Excel 2007 error: Different format than specified by the file extension

如何讓 Internet Explorer 在我每次造訪網頁時檢查新版本?

範例程式

IERegSet.rar