首页| 论坛| 搜索| 消息
主题:光盘启动区基础知识小全
回帖:九、使用 Txtsetup 添加注册表预设





出处:


(http://gosh.msfnhosting.com/infresh.htm)





作者:nosh


翻译:tingpu (tingpu@hotmail.com)








目前已知有一种方法可以用 txtsetup.sif 来添加自定义的注册表条目. 每次文本安装模式即将结束时, 安装程序就会利用txtsetup.sif中的某些定义来创建注册表(文件复制结束时).如果是全新安装的话, 安装程序就会按照 txtsetup.sif 的 区段中的定义来生成注册表.你可以使用这个区段来添加你自己的注册表条目.





添加注册表条目


如果你已经把你的注册表设置保存为一个 .reg 文件的话, 那么你需要用.inf 文件导入这些设置. 将你的 .reg 文件重命名为 settings.reg 并将其置入i386 文件夹中.将以下内容复制到一个新文件中并另存为settings.inf, 然后将其保存到 i386 文件夹中.





Signature = "$Windows NT$"


DriverVer=07/01/2001,5.1.2600.1106








HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnce","MyUpdate",0x00020002,"%systemroot%\regedit.exe /s %systemroot%\system32\settings.reg"





添加 inf 条目


如果你已经有了一个 .inf 文件, 那么将其复制到 i386 文件夹中并将其重命名为settings.inf.确保这个 .inf 文件中有个名为 区段, 只有这个区段下的设置会被使用!你可以用 makecab.exe 把 settings.inf 压缩成 settings.in_, 但这只是可选的.





添加方法


打开 txtsetup.sif 并转到 , 按以下粗体添加一行.





AddReg = hivedef.inf,AddReg


AddReg = hivesys.inf,AddReg


AddReg = hivesft.inf,AddReg


AddReg = hivecls.inf,AddReg


AddReg = hiveusd.inf,AddReg


AddReg = dmreg.inf,DM.AddReg


AddReg = settings.inf,update


再把以下 2 行添加到 txtsetup.sif的 区段下.如果你要使用一个 .reg 文件, 那么就要添加第二行, 不需要的只需添加第一行.


settings.inf =1,,,,,,_x,3,,3


settings.reg =100,,,,,,,2,0,0


把以下 2 行添加到dosnet.inf的 区段下.如果你要使用一个 .reg 文件, 那么就要添加第二行, 不需要的只需添加第一行.


d1,settings.inf


d1,settings.reg


现在开始安装 XP, 当文本安装模式结束时就会导入你的注册表设置了. 你不需要使用无人值守安装方式.





疑难解答


文本模式安装程序所用的解释引擎不同于 SetupAPI.因此, 处理相关的 inf 文件时要小心点以免设置无效.当你编辑用于文本安装模式下用的 inf 文件时, 应当遵循以下方针.


1 -避免 strings.就是那些在 下定义的字符串.我听说在文本安装模式下无法使用字符串.


2 – 总是使用引号.请你尽可能地用引号括住你的设置.


3 – 避免缩写.在一般的 inf 中你可以使用 0x1 或 0x1002.而在文本安装模式下, 以上值不起作用.


4 -避免不必要的空格.这个可能不是强制性的, 但是我觉得你最好这么做.


5 -无法确定能用文本安装模式 .inf做什么事情?那么请参考 hivesys.inf, hivesft.inf.


(我个人对以上说法持保留意见..)


以下是 5 个不同的 .inf 设置.粗体的那个是正确的, 而其它的则无法工作且文本模式安装程序会报错.


1 - HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB826939","Installed",0x00010001,1


2 - HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB826939,"Installed",0x00010001,1


3 - HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB826939","Installed",0x10001,1


4 - HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB826939","Installed"",0x00010001,1


5 - HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB826939",Installed,0x00010001,1


1 – 此行没有任何错误.注意第二段和第三段都用引号括住了. 你必须用引号将其括住!


2 – 此行无法工作, 因为第二段没用引号括住.


3 - 此行无法工作, 因为 0x00010001 被搞成了0x10001.在正常情况下没有问题, 但是在文本安装模式下, 安装程序就无法理解它的含义了.有所怀疑的话, 请不要使用任何缩写.


4 - 此行无法工作, 因为 Installed 后有两个引号.


5 - 此行无法工作, 因为 Installed 没有被引号括住!


试着按照我的指南创建你自己的 inf 吧.如果文本安装模式“不喜欢”你的Inf 文件, 那么它会告诉你错在哪行的.然后你就要转到此行并试着找出问题所在.





其它


此指南中的某部分, 包含的第一个 inf 文件, 摘自 MSTest 所写的材料.
下一页 (1/2)
下一楼›:十、雨浪飘零教程 Windows XP 集成安装光盘制作完全教程






..
‹上一楼:八、$OEM$发布文件夹概述





$OEM$文件夹的用途是,你放在该文件夹 ..

查看全部回帖(12)
«返回主帖