写注册表有很多种方式,我一般采用echo>>和REG命令的方式。
下面贴上我编写ACCESS2003绿色版本时对注册表操作的一段代码。
REM 设置注册表1.设置应用程序路径以便在命令行中执行该程序,这里使用导入生成并导入注册表的方法
ECHO REGEDIT4 >>APPPaths.REG
ECHO. >>APPPaths.REG
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE] >>APPPaths.REG
ECHO @="%CPATH%\\MSACCESS.EXE" >>APPPaths.REG
ECHO "Path"="%CPATH%\\" >>APPPaths.REG
ECHO "useURL"="1" >>APPPaths.REG
regedit /s APPPaths.REG >NULL
del APPPaths.REG /q/f >NULL
cls
REM 设置注册表2.设置应用程序的产品注册授权信息,否则软件无法使用,这里使用REG方法
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\73A4C9C1-D68D-11d0-98BF-00A0C90DC8D9\11.0\Retail" /F
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\73A4C9C1-D68D-11d0-98BF-00A0C90DC8D9\11.0\Retail" /ve /t REG_SZ /d sbbcdcprktpjtapmmfdacmupasbhscddncgp /f
cls
REM 设置注册表3.设置VBA路径,否则无法使用VBE编辑程序进行二次开发,这里仍然使用REG方法,注意使用变量使用""括起来,帮助说的是使用%%,这是不正确的
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA" /F
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA" /v "Vbe6DllPath" /t REG_SZ /d "%CommonProgramFiles%"\MICROS~1\VBA\VBA6\VBE6.DLL /f
cls
REM 设置注册表4.设置软件注册表信息,一般为软件名称下的注册表项
binsub office.REG E:\\OFFICE2003\\OFFICE11\\ %CPATH%\\ >NULL
binsub office.REG C:\\ %SystemDrive%\\ >NULL
regedit /s office.REG >NULL
del office.REG /q/f >NULL
CHCP 936 >NULL
cls
REM 设置注册表5.设置文件关联,这里也可以使用FOR来实现.注意的是1.8版的BINSUB最多只支持127字符,现在2.1版已经解决了这个问题.
binsub link.reg E:\\OFFICE2003\\OFFICE11\\ %CPATH%\\ >NULL
binsub link.reg C:\\ %SystemDrive%\\ >NULL
regedit /s link.reg >NULL
del link.reg /q/f >NULL
CHCP 936 >NULL
cls
REM 设置注册表6.创建语言设置加载项Language.mda,设置后也可以通过语言设置加载项来设置ACCESS界面语言
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Menu Add-Ins\&Language Setting" /F
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Menu Add-Ins\&Language Setting" /v "Expression" /t REG_SZ /d "=LangSet()" /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Menu Add-Ins\&Language Setting" /v "Library" /t REG_SZ /d "Language.mda" /f
REM 设置注册表7.增加自带的控件和增强型控件以便用于高级开发.
REM 去掉了OWC11.DLL MSRTEDIT.DLL,REFEDIT.DLL等控件,需要时可以再添加
REM 先注册SNAPVIEW.OCX快照文件,该文件已经先在profile.exe中解压了.
regsvr32 /s "%CommonProgramFiles%\Micros~1\Snapsh~1\SNAPVIEW.OCX"
REM 注册自带控件和增强控件
plugin.exe
REM 条形码控件
copy plugin\MSBCODE9.OCX ..\ /Y >NULL
regsvr32 /s ..\MSBCODE9.OCX
REM 日历控件MSCAL.OCX,其中Mscomct2.ocx是更好用的日历控件
copy plugin\MSCAL.OCX ..\ /Y >NULL
regsvr32 /s ..\MSCAL.OCX
copy plugin\Mscomct2.ocx ..\ /Y >NULL
regsvr32 /s ..\Mscomct2.ocx
REM form2.0控件
copy plugin\FM20.DLL %WINDIR%\SYSTEM32\ /y >NULL
regsvr32 /s %WINDIR%\SYSTEM32\FM20.DLL
REM VSFLEX3.0控件
copy plugin\VSFLEX3.OCX %WINDIR%\SYSTEM32\ /y >NULL
regsvr32 /s %WINDIR%\SYSTEM32\VSFLEX3.OCX
REM 公用组件最新控件6.0:mscomctl.ocx(5.0的为comctl32.ocx,这里不用),需要授权注册
copy plugin\mscomctl.ocx %WINDIR%\SYSTEM32\ /y >NULL
regsvr32 /s %WINDIR%\SYSTEM32\mscomctl.ocx
REM 公用对话框最新控件6.0:COMDLG32.OCX,需要授权注册
copy plugin\COMDLG32.OCX %WINDIR%\SYSTEM32\ /y >NULL
REM 串口编程最新控件6.0:Mscomm32.ocx,需要授权注册
copy plugin\Mscomm32.ocx %WINDIR%\SYSTEM32\ /y >NULL
regsvr32 /s %WINDIR%\SYSTEM32\Mscomm32.ocx
REM 文本编辑最新控件6.0:RICHTX32.OCX,需要授权注册
copy plugin\RICHTX32.OCX %WINDIR%\SYSTEM32\ /y >NULL
regsvr32 /s %WINDIR%\SYSTEM32\RICHTX32.OCX
REM 表格最新控件6.0:MSFLXGRD.OCX,需要授权注册
copy plugin\MSFLXGRD.OCX %WINDIR%\SYSTEM32\ /y >NULL
regsvr32 /s %WINDIR%\SYSTEM32\MSFLXGRD.OCX
REM 网络最新控件6.0:Mswinsck.ocx,需要授权注册 >NULL
copy plugin\Mswinsck.ocx %WINDIR%\SYSTEM32\ /y
regsvr32 /s %WINDIR%\SYSTEM32\Mswinsck.ocx
regedit /s PLUGINS.REG >NULL
del PLUGINS.REG /q/f >NULL
RD plugin /Q/S >NULL
CLS
REM 创建程序运行的快捷方式:桌面,快速启动栏,程序菜单,这里使用LEELINK工具,在创建之前,需要更改CPATH环境变量(可使用COPY法)
CALL CPTEMP.bat
SLINK /F:%CPATH%\MSACCESS.EXE /C:Microsoft Office Access 2003 /s:y /d:y
del slink.exe /q/f >NULL
rem ================================================================
rem cd ..
rem copy Micros~1.lnk "%ALLUSERSPROFILE%\桌面\ /Y"
rem copy Micros~1.lnk %ALLUSERSPROFILE%\桌面\「开始」菜单\ /Y
rem copy Micros~1.lnk %ALLUSERSPROFILE%\桌面\「开始」菜单\程序 /Y
rem cd STARTUP\
rem ================================================================
cls