一直喜歡用綠色的程序,解壓縮就可以用,方便又不向操作系統添加過多東西。
即使不是純綠色的程序,運行一個批處理或者綠化程序也比原來的安裝包方便。
偶爾用Delphi5寫點小程序,需要用就安裝,不需要就卸載,但是安裝卸載有點麻煩。
想做一個綠化程序,覺得有點復雜,而且不通用。
使用安裝腳本雖然方便,但還是要重新學專用的腳本語言。
最終還是選擇了批處理。
主要步驟:安裝Delphi5及升級文件,提取文件及注冊表信息,制作批處理(注冊DLL,修改Path環境變量,注冊表增加一些數據,創建快捷方式)。
提取文件,有些文件在程序目錄中,有些在系統的system32中,有些在share中。這些文件統統復制到一起,分別放在子文件夾中。
注冊表需要提取的內容在以下幾個分支中:Help,SharedDlls,Borland。regedit或Registry_Workshop可以搜索和導出注冊表數據。
制作安裝和卸載批處理需要一個選擇菜單並判斷操作系統是32位還是64位。64位的操作系統中,32位的應用程序訪問system32路徑或注冊表HKLM分支,都會轉到sysWOW64路徑及Wow6432Node分支,不用特殊的api是不能訪問system32路徑和原注冊表項的,Delphi5是32位的,所以要用32位的cmd執行批處理,才會對Delphi5有效。
@echo off cls :memu echo 功能選擇 echo ============================== echo. echo 輸入1,安裝Delphi5 echo. echo 輸入2,卸載Delphi5 echo. echo 輸入3,退出 echo. echo ============================== rem echo 請輸入: set /p user_input=請輸入: if "%user_input%" equ "1" ( goto setup) if "%user_input%" equ "2" ( goto unsetup) if "%user_input%" equ "3" ( exit ) echo. echo 輸入錯誤,請重新輸入。 echo. goto memu :setup rem 判斷64位系統32位系統 if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 ( echo 32位操作系統,開始安裝。 start "安裝.bat" ) else ( echo 64位操作系統,使用32位cmd執行安裝。 start %WinDir%\SysWOW64\cmd /c "安裝.bat" ) echo 安裝完畢 pause exit :unsetup rem 判斷64位系統32位系統 if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 ( echo 32位操作系統,開始卸載。 start "卸載.bat" ) else ( echo 64位操作系統,使用32位cmd執行卸載。 start %WinDir%\SysWOW64\cmd /c "卸載.bat" ) echo 卸載完畢 pause exit
注冊表數據可以通過導入*.reg文件添加到注冊表,但是內容需要預先改好。通過reg命令添加到注冊表更加靈活,可以根據當前路徑設置數據。有一個工具可以在網上搜索到,Reg2Bat_vbs,可以將導出的注冊表文件轉成reg命令的批處理。
導入已經修改好的注冊表文件:
reg import "user 1導入.reg"
使用當前目錄作為注冊表數據:
reg add HKLM\SOFTWARE\Microsoft\Windows\Help /v d5corba.hlp /d "%cd%\Help" /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls /v "%~dp0sys32\dss50.bpl" /t REG_dword /d 1 /f
刪除注冊表數據:
reg delete "HKCU\SOFTWARE\Software\Borland\Delphi\5.0" /va /f
*.hlp文件需要注冊到操作系統,例如上面的代碼,win7以上操作系統還要安裝hlp閱讀軟件的補丁。
*.dll文件可以通過添加注冊表數據添加,例如上面的代碼,也可以使用regsvr32命令進行注冊,但有些文件注冊時候提示出錯。
修改path環境變量以及創建快捷方式可以使用系統dos命令,但使用第三方工具更方便一點。ShortCut和EditPath兩個第三方工具可以在下面網址找到。http://www.bathome.net/s/tool/index.html
添加路徑:uu\editpath -au "%cd%\sys32"
刪除路徑:uu\editpath -ru "%cd%\sys32"
Delphi5需要添加安裝文件中system32文件夾和Projects\Bpl文件夾到path環境目錄。
創建快捷方式:
@echo off for,/f,"skip=1 tokens=1,2,*",%%a,in,('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop'),do,( @set PathAll_=%%c ) start uu\shortcut.exe /f:"%PathAll_%\Delphi5 Green.lnk" /a:c /t:"%cd%\Bin\delphi32.exe" rem 修改過桌面路徑的操作系統不能用start uu\shortcut.exe /f:"%USERPROFILE%\Desktop\Delphi5 Green.lnk" /a:c /t:"%cd%\Bin\delphi32.exe"
刪除快捷方式:if exist "%PathAll_%\Desktop\Delphi5 Green.lnk" (del "%PathAll_%\Desktop\Delphi5 Green.lnk")
“批處理之家”是學些和查詢第三方工具的好地方,“腳本之家”是搜索批處理代碼的好地方。