Board logo

标题: [求助]请教版主如何在2000安装文件中集成Windows Media Player [打印本页]

作者: 微雨残寒    时间: 2005-8-19 07:43     标题: [求助]请教版主如何在2000安装文件中集成Windows Media Player

请教版主如何在2000安装文件中集成Windows Media Player9.0和IE6.0
作者: cq-x516    时间: 2005-8-19 07:55     标题: [求助]请教版主如何在2000安装文件中集成Windows Media Player

[转贴]
复制X的安装盘到硬盘的某个目录,如CDROOT,然后把\i386\下面所有以.in_为后缀名的文件用winrar解压到另外一个目录如INF,里面全是XP安装的各种驱动程序和组件的安装配置文件;
打开syssteup.inf这个主安装配置文件。搜索“[Infs.Always]”字符串,就可以在[Infs.Always]下面发现WMP8的相关安装配置文件记录,结果如下:
[Infs.Always]
...
skins.inf,InstallSkins -------------->WMP8的外观模式安装文件
wmp.inf,Installwmp7 ----------------->WMP8的主安装文件
wmtour.inf,DefaultInstall ----------->Windows XP的漫游和教程安装配置
mymusic.inf,InstallWMPlaylist ------->我的音乐的主安装文件
...
这里只要对wmp.inf进行修改即可。打开INF下的WMP.INF,内容如下:
[Version]
Signature="$Chicago$"
LayoutFile=layout.inf
SetupClass=BASE -------->这个说明WMP8是系统的一部分
[BaseWinOptions]
InstallWMP7------------->这个对应刚才syssteup.inf的相应调用“wmp.inf,Installwmp7”,是安装程序将执行[InstallWMP7]段内的相应代码。[InstallWMP7]段内的相应代码如下:
[InstallWMP7]
CopyFiles =V7Copy.Core  ;所有要复制到系统的文件
DelFiles=V7Copy.RmvLegacy,V7Copy.RmvLegacySys  ;所有要删除的文件
UpdateInis=UpdateIni.DVDLinks.Rmv
DelReg =V7Reg.Reset  ;注册表里要删除的键值
AddReg =V7Reg.Core, WMPUninstKey, V7Reg.Univ,
WMPDelay.Actions, AddReg.Uninst, V7.RegPUI,
WMPAddReg.PUI  ;注册表里要写入的键值。
现在只需要关心安装程序把哪些文件复制到系统中了,转到刚才[InstallWMP7]
CopyFiles =V7Copy.Core这个段内,看到如下信息:
[V7Copy.Core]
wmplayer.exe,,,97
setup_wm.exe,,,97
wmpvis.dll,,,97
dlimport.exe,,,97
说明共有四个文件被复制到系统,“97”是目标目录,等同于%systemroot%\program files\windows media player.
把这四个文件的信息先记录下来。
接下来,把下载的WMP9解压缩,同样打开里面的WMP.INF,对比一下它和安装光盘里的WMP.inf的差异(主要是复制文件方面的),结果如下:
wmplayer.exe
setup_wm.exe
wmpvis.dll
dlimport.exe
wmp.dll
wmpcore7.dll
wmpcore8.dll
wmpvis.dll
...
这些WMP8的文件都是可以删除的,因为安装WMP9时会把这些文件覆盖。
接下来,把WMP8版本的WMP.INF内容全部清除,然后写上这样的代码:
[Version]
Signature="$Chicago$"
LayoutFile=layout.inf
SetupClass=BASE
[BaseWinOptions]
InstallWMP7
[InstallWMP7]
AddReg =WMPDelay.Actions
[WMPDelay.Actions]
HKLM,"%KEY_WIN_CURVER%\RunOnce","OEM_WMPWMP9_Install",0x00020002,
"%systemroot%\system32\MPSETUP.exe"-------》在安装过程中调用WMP9的安装程序MPSETUP.EXE
[Strings]
KEY_WIN_CURVER="Software\Microsoft\Windows\CurrentVersion"
保存后,在用compress.exe 压缩回wmp.in_,覆盖到\i386目录。
接下来删除i386目录下的文件:(刚才记录下来的)
wmplayer.exe
setup_wm.exe
wmpvis.dll
dlimport.exe
wmp.dll
wmpcore7.dll
wmpcore8.dll
wmpvis.dll
...
然后把mpsetup.exe用compress.exe 压缩成mpsetup.ex_复制到\386目录。
如果删除了上面的文件,XP安装程序不是会报错吗?当然会,还必须做最重要的一步,就是记录XP安装文件来源和目标的两个文件:
DOSNET.INF:这是在WINDOWS系统下执行SETUP时用到的,它实际是一个需要拷贝文件的列表。告诉安装程序哪些文件要复制到C盘的临时目录$winnt_ls$\i386。
TXTSETUP.SIF:这是你在光盘开机安装系统时蓝屏文字模式下用到的,它告诉安装程序$winnt_ls$\i386里面的文件将会被拷贝到目标分区的哪里去。
先打开DOSNET.INF,文件开头是一些目录的定义,“d1”等同于光盘上的i386目录,“d4”等同于第2张安装CD上的compments\i386目录(如果是MCE和table PC版本,就要用到这个)。现在“d1”,搜索“wmplayer.exe”字符串,找到这样的一行:
“d1,wmplayer.exe”其意思就是告诉安装程序这个文件要复制,现在因为不需要了,所以把这行删除,依次把其他不需要的文件所在的行删除。并在里面加上一行“d1,mpsetup.exe”告诉安装程序把WMP9的安装程序mpsetup.exe”拷贝到系统中。
下一步,轮到txtsetup.sif了,同样搜索“wmplayer.exe”字符串,把所在的行给删除,然后依次把其他不需要的文件所在的行删除。接着再加上一行:
mpsetup.exe = 100,,,,,,,2,0,0
其中100是文件来源,后面的2,0,0是目标位置。
“100”代表的是什么,看回txtsetup.sif的开头的相关定义就知道:
[SourceDisksNames.x86]
1 = %cdname%,%cdtagfilei%,,\i386
2 = "%cd2name%","%cd2tagfilei%",,\cmpnents\tabletpc\i386
3 = "%cd2name%","%cd2tagfilei%",,\cmpnents\mediactr\i386
4 = "%cd2name%","%cd2tagfilei%",,\cmpnents\etfx\i386
100 = %spcdname%,%spcdtagfilei%,,\i386,1
“100”等于安装光盘上的\1386目录,实际等同于安装过程中C盘上的临时目录$WINNT_LS$\I386。
那么“2”代表什么,看回txtsetup.sif的开头的相关定义就知道:
[WinntDirectories]
1 = "\"
2 = system32
“2”等同于目标分区的windows\system32目录
也就是说,这一行代码的含义是把来自安装过程中C盘上的临时目录$WINNT_LS$\I386\mpsetup.exe复制到目标分区的Windows\system32目录。为什么要复制到这里呢?是为了配合上面在WMP.INF里面的程序调用:
[InstallWMP7]
AddReg =WMPDelay.Actions
[WMPDelay.Actions]
HKLM,"%KEY_WIN_CURVER%\RunOnce","OEM_WMPWMP9_Install",0x00020002, "%systemroot%\system32\MPSETUP.exe"
在安装过程中调用WMP9的安装程序MPSETUP.EXE





欢迎光临 EZB 论坛 (http://ultraiso.net/ezbbbs/) Powered by Discuz! 6.1.0