282 lines
8.6 KiB
Batchfile
282 lines
8.6 KiB
Batchfile
|
||
@Echo Off
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 檢查 %RootDrive% 是否已設定,並將它設定給這個指令檔。
|
||
Rem
|
||
|
||
Call "%SystemRoot%\Application Compatibility Scripts\ChkRoot.Cmd"
|
||
If "%_CHKROOT%" == "FAIL" Goto Done
|
||
Call "%SystemRoot%\Application Compatibility Scripts\SetPaths.Cmd"
|
||
If "%_SETPATHS%" == "FAIL" Goto Done
|
||
|
||
Set __SharedTools=Shared Tools
|
||
|
||
If Not "%PROCESSOR_ARCHITECTURE%"=="ALPHA" goto Start0
|
||
If Not Exist "%ProgramFiles(x86)%" goto Start0
|
||
Set __SharedTools=Shared Tools (x86)
|
||
|
||
:Start0
|
||
|
||
Rem #########################################################################
|
||
Rem 設定 app VendorName
|
||
SET VendorName=Microsoft
|
||
|
||
Rem #########################################################################
|
||
Rem 將校對工具路徑設定到 MS Office 2000 使用的路徑
|
||
SET ProofingPath=Proof
|
||
|
||
Rem #########################################################################
|
||
Rem 設定用來存放應用程式安裝根目錄的登錄機碼及其值
|
||
|
||
SET AppRegKey=HKLM\Software\Microsoft\Office\8.0\Common\InstallRoot
|
||
SET AppRegValue=OfficeBin
|
||
|
||
Rem #########################################################################
|
||
Rem 設定用來存放應用程式範本目錄的登錄機碼及其值
|
||
|
||
SET AppTemplatesRegKey=HKCU\Software\Microsoft\Office\8.0\Common\FileNew\LocalTemplates
|
||
SET AppTemplatesRegValue=
|
||
|
||
Rem #########################################################################
|
||
Rem 設定用來存放應用程式自訂目錄路徑名稱的登錄機碼及其值
|
||
|
||
SET AppCustomDicRegKey=HKLM\Software\Microsoft\%__SharedTools%\Proofing Tools\Custom Dictionaries
|
||
SET AppCustomDicRegValue=1
|
||
|
||
|
||
Rem #########################################################################
|
||
Rem 設定指定相關的應用程式檔案名稱及路徑名稱
|
||
|
||
SET CustomDicFile=Custom.Dic
|
||
SET AppPathName=Microsoft Project
|
||
SET AppWebPathName=Microsoft Project Web
|
||
|
||
Rem #########################################################################
|
||
Rem 設定 MS Office 2000 所使用的預設路徑
|
||
|
||
SET AppData=%RootDrive%\%APP_DATA%
|
||
SET UserTemplatesPath=%AppData%\%VendorName%\%TEMPLATES%
|
||
SET UserCustomDicPath=%AppData%\%VendorName%\%ProofingPath%
|
||
|
||
Rem #########################################################################
|
||
Rem 從登錄中取得 Project 98 安裝位置。
|
||
Rem 如果找不到,假設這個應用程式並未安裝,並顯示錯誤訊息。
|
||
Rem
|
||
|
||
..\ACRegL %Temp%\Proj98.Cmd PROJINST "%AppRegKey%" "%AppRegValue%" ""
|
||
If Not ErrorLevel 1 Goto Cont0
|
||
Echo.
|
||
Echo 無法從登錄中抓取 Project 98 的安裝位置。
|
||
Echo 請確認 Project 98 是否已安裝,然後重新
|
||
Echo 執行這個指令檔。
|
||
Echo.
|
||
Pause
|
||
Goto Done
|
||
|
||
:Cont0
|
||
Call %Temp%\Proj98.Cmd
|
||
Del %Temp%\Proj98.Cmd >Nul: 2>&1
|
||
|
||
|
||
..\ACRegL %Temp%\Proj98.Cmd PROJROOT "%AppRegKey%" "%AppRegValue%" "STRIPCHAR\1"
|
||
If Not ErrorLevel 1 Goto Cont01
|
||
Echo.
|
||
Echo 無法從登錄中抓取 Project 98 的安裝位置。
|
||
Echo 請確認 Project 98 是否已安裝,然後重新
|
||
Echo 執行這個指令檔。
|
||
Echo.
|
||
Pause
|
||
Goto Done
|
||
|
||
:Cont01
|
||
Call %Temp%\Proj98.Cmd
|
||
Del %Temp%\Proj98.Cmd >Nul: 2>&1
|
||
|
||
Rem #########################################################################
|
||
Rem 從登錄中取得範本路徑名稱
|
||
Rem
|
||
..\ACRegL %Temp%\Proj98.Cmd TemplatesPathName "%AppTemplatesRegKey%" "%AppTemplatesRegValue%" "STRIPPATH"
|
||
If Not ErrorLevel 1 Goto Cont02
|
||
SET TemplatesPathName=%TEMPLATES%
|
||
Goto Cont03
|
||
:Cont02
|
||
Call %Temp%\Proj98.Cmd
|
||
Del %Temp%\Proj98.Cmd >Nul: 2>&1
|
||
|
||
:Cont03
|
||
|
||
Rem #########################################################################
|
||
Rem 如果並未安裝 MS Office 97,就使用預設路徑
|
||
|
||
If Not Exist "%RootDrive%\Office97" Goto SetPathNames
|
||
|
||
Rem #########################################################################
|
||
Rem 如果已安裝 MS Office 97,就使用 MS Office 97 路徑。
|
||
|
||
|
||
Rem #########################################################################
|
||
Rem 從登錄中取得自訂字典的路徑名稱
|
||
Rem
|
||
..\ACRegL %Temp%\Proj98.Cmd AppData "%AppCustomDicRegKey%" "%AppCustomDicRegValue%" "STRIPCHAR\1"
|
||
If Not ErrorLevel 1 Goto Cont04
|
||
SET AppData=%RootDrive%\Office97
|
||
Goto Cont05
|
||
:Cont04
|
||
Call %Temp%\Proj98.Cmd
|
||
Del %Temp%\Proj98.Cmd >Nul: 2>&1
|
||
:Cont05
|
||
|
||
Rem #########################################################################
|
||
Rem 從登錄中取得範本路徑名稱
|
||
Rem
|
||
..\ACRegL %Temp%\Proj98.Cmd UserTemplatesPath "%AppTemplatesRegKey%" "%AppTemplatesRegValue%" ""
|
||
If Not ErrorLevel 1 Goto Cont06
|
||
SET UserTemplatesPath=%AppData%\%TemplatesPathName%
|
||
Goto Cont07
|
||
:Cont06
|
||
Call %Temp%\Proj98.Cmd
|
||
Del %Temp%\Proj98.Cmd >Nul: 2>&1
|
||
|
||
:Cont07
|
||
SET UserCustomDicPath=%AppData%
|
||
|
||
:SetPathNames
|
||
|
||
Rem #########################################################################
|
||
Rem 設定使用者及公用路徑名稱
|
||
|
||
SET CommonCustomDicPath=%PROJINST%
|
||
SET CommonTemplatesPath=%PROJROOT%\%TemplatesPathName%
|
||
|
||
SET UserCustomDicFileName=%UserCustomDicPath%\%CustomDicFile%
|
||
SET UserAppTemplatesPath=%UserTemplatesPath%\%AppPathName%
|
||
SET UserAppWebTemplatesPath=%UserTemplatesPath%\%AppWebPAthName%
|
||
SET CommonAppTemplatesPath=%CommonTemplatesPath%\%AppPathName%
|
||
SET CommonAppWebTemplatesPath=%CommonTemplatesPath%\%AppWebPAthName%
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 如果 Office 97 已安裝,Project 98 安裝指令檔
|
||
Rem 會將範本移動目前的使用者目錄。
|
||
Rem 將它們放在通用區域。Proj98Usr.cmd 可以將範本移回原處。
|
||
Rem
|
||
|
||
If NOT Exist "%UserAppTemplatesPath%" goto skip10
|
||
If Exist "%CommonAppTemplatesPath%" goto skip10
|
||
xcopy "%UserAppTemplatesPath%" "%CommonAppTemplatesPath%" /E /I /K > Nul: 2>&1
|
||
:skip10
|
||
|
||
If NOT Exist "%UserAppWebTemplatesPath%" goto skip11
|
||
If Exist "%CommonAppWebTemplatesPath%" goto skip11
|
||
xcopy "%UserAppWebTemplatesPath%" "%CommonAppWebTemplatesPath%" /E /I /K > Nul: 2>&1
|
||
:skip11
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 將 Global.mpt 檔案設成唯讀。
|
||
Rem 否則第一個啟動 Project 的使用者會變更 ACLs。
|
||
Rem
|
||
|
||
if Exist "%PROJINST%\Global.mpt" attrib +r "%PROJINST%\Global.mpt"
|
||
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 允許任何人讀取被 Office 97 更新過的系統 DLL。
|
||
Rem
|
||
If Exist %SystemRoot%\System32\OleAut32.Dll cacls %SystemRoot%\System32\OleAut32.Dll /E /T /G "Authenticated Users":R > NUL: 2>&1
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 建立 MsForms.Twd 檔案,它是
|
||
Rem Powerpoint 及 Excel Add-ins ([檔案] [儲存成 HTML] 等等) 的必需檔案。
|
||
Rem 執行這兩種應用程式時,它們將會用適當的檔案來取代含有必要資料的檔案。
|
||
Rem
|
||
If Exist %systemroot%\system32\MsForms.Twd Goto Cont2
|
||
Copy Nul: %systemroot%\system32\MsForms.Twd >Nul:
|
||
Cacls %systemroot%\system32\MsForms.Twd /E /P "Authenticated Users":F > Nul: 2>&1
|
||
:Cont2
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 從 [啟動] 功能表中移除 [快速尋找]。
|
||
Rem [快速尋找] 會使用大量資源並降低系統效能。
|
||
Rem
|
||
|
||
|
||
If Exist "%COMMON_STARTUP%\Microsoft Find Fast.lnk" Del "%COMMON_STARTUP%\Microsoft Find Fast.lnk"
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 變更登錄機碼,將路徑指向使用者所指定的
|
||
Rem 目錄。
|
||
Rem
|
||
|
||
Rem 如果目前不是安裝模式,就變更成安裝模式。
|
||
Set __OrigMode=Install
|
||
ChgUsr /query > Nul:
|
||
if Not ErrorLevel 101 Goto Begin
|
||
Set __OrigMode=Exec
|
||
Change User /Install > Nul:
|
||
:Begin
|
||
..\acsr "#ROOTDRIVE#" "%RootDrive%" Template\msproj98.Key msproj98.tm1
|
||
..\acsr "#__SharedTools#" "%__SharedTools%" msproj98.tm1 msproj98.tm2
|
||
Del msproj98.tm1 >Nul: 2>&1
|
||
..\acsr "#USERCUSTOMDICFILE#" "%UserCustomDicFileName%" msproj98.tm2 msproj98.Key
|
||
Del msproj98.tm2 >Nul: 2>&1
|
||
|
||
regini msproj98.key > Nul:
|
||
|
||
Rem If original mode was execute, change back to Execute Mode.
|
||
If "%__OrigMode%" == "Exec" Change User /Execute > Nul:
|
||
Set __OrigMode=
|
||
|
||
|
||
Rem #########################################################################
|
||
|
||
Rem
|
||
Rem 更新 proj97Usr.Cmd 來反映實際的安裝目錄,
|
||
Rem 並將其加入 UsrLogn2.Cmd 指令檔。
|
||
Rem
|
||
|
||
..\acsr "#USERTEMPLATESPATH#" "%UserTemplatesPath%" ..\Logon\Template\prj98Usr.Cmd prj98Usr.tm1
|
||
..\acsr "#USERCUSTOMDICPATH#" "%UserCustomDicPath%" prj98Usr.tm1 prj98Usr.tm2
|
||
Del prj98Usr.tm1 >Nul: 2>&1
|
||
..\acsr "#COMMONTEMPLATESPATH#" "%CommonTemplatesPath%" prj98Usr.tm2 prj98Usr.tm1
|
||
Del prj98Usr.tm2 >Nul: 2>&1
|
||
..\acsr "#COMMONCUSTOMDICPATH#" "%CommonCustomDicPath%" prj98Usr.tm1 prj98Usr.tm2
|
||
Del prj98Usr.tm1 >Nul: 2>&1
|
||
..\acsr "#CUSTOMDICNAME#" "%CustomDicFile%" prj98Usr.tm2 prj98Usr.tm1
|
||
Del prj98Usr.tm2 >Nul: 2>&1
|
||
..\acsr "#APPPATHNAME#" "%AppPathName%" prj98Usr.tm1 prj98Usr.tm2
|
||
Del prj98Usr.tm1 >Nul: 2>&1
|
||
..\acsr "#APPWEBPATHNAME#" "%AppWebPathName%" prj98Usr.tm2 ..\Logon\prj98Usr.Cmd
|
||
Del prj98Usr.tm2 >Nul: 2>&1
|
||
|
||
FindStr /I prj98Usr %SystemRoot%\System32\UsrLogn2.Cmd >Nul: 2>&1
|
||
If Not ErrorLevel 1 Goto Skip1
|
||
Echo Call prj98Usr.Cmd >> %SystemRoot%\System32\UsrLogn2.Cmd
|
||
:Skip1
|
||
|
||
Rem #########################################################################
|
||
|
||
Echo.
|
||
Echo 為了能讓 Project 98 正確操作,目前已登
|
||
Echo 入的使用者必須先登出,再重新登入,才能
|
||
Echo 執行應用程式。
|
||
Echo.
|
||
Echo Microsoft Project 98 多使用者應用程式調整處理完成
|
||
Pause
|
||
|
||
:done
|
||
|