Myinstall 脚本使用说明
setup.exe 为安装文件。
uninstall.exe 为卸载文件。
setup.bmp 为 setup.exe 调用的logo,大小为48×48象素,若无则使用内置logo。
setup.ini 为 setup.exe 使用的安装配置文件。
所有的安装模块都以子目录方式存放,每个子目录下使用 mpcplugin.ini 文件(可自定义文件名)进行配置,setup.exe会自动识别。
setup.exe 可以使用 /s、/S、-s 或 -S 参数无人值守安装(大写时不显示运行界面)。
setup.ini 文件格式说明如下:
_________________________________________
[main]
name=Media Player Classic 精品版
readme=readme.txt
progdir=#progdir#\Media Player Classic
id=mympc
exit=1
BrandingText=Silence 制作
ininame=mpcplugin.ini
_________________________________________
一、[main]
1、name=Media Player Classic 精品版
此行表示安装程序的名称
2、readme=readme.txt
setup.exe 在运行时显示 readme.txt 文件内容。可以使用 RTF 格式文件,如:
readme=readme.rtf
3、progdir=#progdir#\Media Player Classic
表示默认的安装路径,#progdir#为预定义的公用变量,代表 x:\Program Files 目录,其它还有一下公用变量,在后面讲。
4、id=mympc
表示此安装程序所安装软件的标识符,和 mpcplugin.ini 中的 id 含义一样,便于将来升级时使用。
5、exit=1
1 表示安装后自动退出,0 不退出。
6、BrandingText=Silence 制作
自定义 setup.exe 界面下方横线左端显示的字符串。
7、ininame=myinstall.ini
组件脚本文件名称,默认为 mpcplugin.ini。
如:
二、[setup_run]/[uninstall_run]
[setup_run]
#sysdir#\imetool.exe/?#sysdir#=afteralwaysnowaitshow
#sysdir#\notepad.exe#sysdir#=beforealwayswaithide
[uninstall_run]
#sysdir#\imetool.exe/?=afteralwaysnowaitshow
#sysdir#\notepad.exe=beforealwayswaithide
全局安装、卸载前后运行程序(旧版本运行功能取消)。用以控制安装、卸载前后运行的程序。
等号左边分为三部分,为命令行、参数和运行时路径,用分割。参数和运行时路径均可省略。注:若省略参数而需指定运行时路径时,参数前的分割符不能省略,即须使用两个连续的“”。举例如下:
#sysdir#\notepad.exe#sysdir#=beforealwayswaithide
等号右边分为四部分,用分割。
第一部分可用值为 before 和 after,分别代表在安装前还是安装后运行。
第二部分可用值为 always 和 normal,always 表示即使在静默安装下也运行此程序。
第三部分可用值为 wait 和 nowait,分别表示运行外部程序后等待结束后再返回和立即返回。
第四部分可用值为 show 和 hide,表示运行外部程序时显示或隐藏其界面。
三、[language]
1、charset=134
代表所需字符集,134 为简体中文、136 为繁体中文、0 为英文等。
2、height=-12
表示字体高度,-12相当于9号字。
3、font=宋体
字体名字
4、其它部分可自行用相应语言填写。
mpcplugin.ini 文件格式说明如下:
_________________________________________
[main]
name=vobsub
title=vobsub 字幕插件
content=vobsub 字幕插件
author=Silence
date=2003.10.18
checked=1
reg=reg.reg
reg98=98.reg
reg2000=2000.reg
unreg=unreg.reg
unreg98=un98.reg
unreg2000=un2000.reg
mutex=xxx,aaa
id=mympc
pri=file
[file]
unrar.dll,0=#sysdir#,0
*.txt,0=#setupdir#,2
?.exe,1=c:\
[98]
DVobSub.ax,1=#setupdir#\Codecs,1
VOBSUB.DLL,0=#setupdir#\Codecs,0
[2000]
VSFilter.dll,1=#setupdir#\Codecs
[shortcut]
[shortcut2000]
vobsub 设置PROGRAMS#setupname#=#sysdir#\rundll32.exetest.ico0"#setupdir#\Codecs\vsfilter.dll",DirectVobSub
[shortcut98]
vobsub 设置PROGRAMS#setupname#=#sysdir#\rundll32.exetest.ico0"#setupdir#\Codecs\dvobsub.ax",configure
[detect]
rootkey=HKEY_LOCAL_MACHINE
subkey=SOFTWARE\Classes\CLSID\{0180E49C-13BF-46DB-9AFD-9F52292E1C22}
valuename=
valuedata=
[system.ini]
driver32,VIDC.XVID=xvid.dll
[dir]
#setupdir#\codecs=
[dir98]
c:\test=
[dir2000]
#progdir#\test=
[setup_run]
#sysdir#\imetool.exe/?=alwaysnowaitshow
#sysdir#\notepad.exe=alwayswaithide
[uninstall_run]
#sysdir#\imetool.exe/?=afteralwaysnowaitshow
#sysdir#\notepad.exe=beforealwayswaithide
_________________________________________
一、[main] 小节
0、name=vobsub *新增,为保持不同语言组件兼容性,建议使用。
表示本组件的标识符,强烈建议使用英文字母,不区分大小写。
1、title=vobsub 字幕插件
表示本组件的名称为“vobsub 字幕插件”。
2、content=vobsub 字幕插件
部件说明
3、author=Silence
打包制作者
4、date=2003.10.18
制作日期
5、checked=1
0表示本组件默认不安装,1表示默认安装,2表示必须安装。
6、reg=reg.reg
表示安装时要导入的注册表内容,在reg.reg文件中可以使用预定义公用变量,下同。
reg98=98.reg
表示 Win9x 系统下需要导入的注册表内容。
reg2000=2000.reg
表示 NT/2000/XP 系统下需要导入的注册表内容。
7、unreg=unreg.reg
卸载时使用的注册表内容。
unreg98=un98.reg
表示在 Win9x 系统下卸载时需要删除的注册表内容。
unreg2000=un2000.reg
表示在 NT/2000/XP 系统下卸载时需要删除的注册表内容。
8、mutex=xxx,aaa *修改定义
表示不能与本组件同时安装的组件,用,分隔。xxx 和 aaa 代表其它组件中的标识符,即 name=xxx 这一行中等号右边的内容,如果此行不存在,则以 title=xxx 一行等号右边的内容代替。
9、run=x:\xxx\xxx.exe/d
表示安装结束后要运行的程序,使用绝对路径。在使用 /s 参数安装时无效。
10、pri=file
表示安装组件时先复制文件再导入注册表项目,如无此小节或内容为空,则先导入注册表再复制文件。
11、id=mympc
表示此安装程序所安装软件的标识符,和 mpcplugin.ini 中的 id 含义一样,便于将来升级时使用。
二、[file] 小节
demo\unrar.dll,0=#sysdir#,0
此节为要复制的文件,unrar.dll,0=#sysdir#表示将当前目录下的unrar.dll文件复制到windows\system(98)/window(winnt)\system32目录下,#sysdir#代表公用变量。
等号左边分为三部分,第一部分表示源文件,可包括当前目录下的相对路径,可使用通配符*和?。第二部分表示目标文件,不包含路径,本部分可省略(若第一部分使用通配符则必须省略第二部分)。第三部分为1表示该文件需要使用regsvr32.exe注册,0则不需要。
等号右边分为两部分,第一部分表示目标文件路径,可包含公用变量。
第二部分含义如下可取值为 0、1、2(省略则默认为 0):
0 表示安装前比较源文件和目的文件,只有源文件版本比目的文件新时才会覆盖(如果版本相同则比较文件创建日期)。
1 表示如果目的文件存在则不覆盖。
2 表示无论何时均覆盖目的文件。
[98][2000]
此二节作用与[file]一节基本相同,所不同的是[98]节的内容只在win9x系统上安装,[2000]节的内容只在nt/2000/xp上安装。
三、[shortcut] 小节
vobsub 设置PROGRAMS#setupname#=#sysdir#\rundll32.exe"#setupdir#\Codecs\vsfilter.dll",DirectVobSub
本节用以创建快捷方式。
等号左边分为五部分,用分隔。第一部分代表快捷方式名称。第二部分代表快捷方式起始位置(桌面、开始菜单之类),用预定义好的变量来表示。第三部分表示快捷方式在第二部分基础上的子目录,可选(#setupname# 只能在此部分使用。第四部分表示要使用的图标资源文件,第五部分表示图标索引号,0代表资源中第一个图标。注意:第四部分和第五部分应同时使用(或者不使用),否则程序判断会出问题。
等号右边分为三部分,用分隔。第一部分表示快捷方式的执行文件,包括路径。第二部分为执行路径。第三部分为执行参数。若没有参数,第二部分路径可以省略;若有参数则必须写明第二部分即路径。
[shortcut98][shortcut2000]的作用和[shortcut]类似,只是分别在win9x和nt/2000/xp下有效。
四、[detect] 小节
rootkey=HKEY_LOCAL_MACHINE
subkey=SOFTWARE\Classes\CLSID\{0180E49C-13BF-46DB-9AFD-9F52292E1C22}
valuename=
valuedata=
file=#setupdir#\mplayerc.exe
此节的作用是检测已经安装的组件在注册表中写入的值,如果找到则该组件显示为粗体红色,并自动取消选中。
rootkey=HKEY_LOCAL_MACHINE
表示根键
subkey=SOFTWARE\Classes\CLSID\{0180E49C-13BF-46DB-9AFD-9F52292E1C22}
表示子键
valuename=
表示键名
valuedata=
表示键值
注意:目前暂时只能检测字符串类型的键值。
file=#setupdir#\mplayerc.exe
此节检测已安装的文件。
五、[system.ini] 小节 *只适用于 Win9x
为兼容 Win9x,特增加此节内容。表示在 Win9x 的系统配置文件 system.ini 中增加的项目。
driver32,VIDC.XVID=xvid.dll
逗号前面的内容表示小节名称,逗号后面的内容为在此小节增加的内容,支持公用变量。
六、[dir]小节
[dir]
#setupdir#\codecs=
此小节的作用是创建等号左边部分的目录。
[dir98][dir2000]
此两小节的功能分别是在 Win9x 和 2000/xp 系统下创建目录。
七、组件安装后、卸载前运行指定程序(旧版本运行功能取消)。
组件脚本中新增 [setup_run] 和 [uninstall_run] 小节,用以控制组件安装后和卸载前运行的程序。
[setup_run]
#sysdir#\imetool.exe/?#sysdir#=alwaysnowaitshow
#sysdir#\notepad.exe=alwayswaithide
[uninstall_run]
#sysdir#\imetool.exe/?=alwaysnowaitshow
#sysdir#\notepad.exe=alwayswaithide
等号左边分为三部分,为命令行、参数和运行时路径,用分割。参数和运行时路径均可省略。注:若省略参数而需指定运行时路径时,参数前的分割符不能省略,即须使用两个连续的“”。举例如下:
#sysdir#\notepad.exe#sysdir#=beforealwayswaithide
等号右边分为三部分,用分割。
第一部分可用值为 always 和 normal,always 表示即使在静默安装下也运行此程序(注:此部分内容在 [uninstall_run] 小节中无意义)。
第二部分可用值为 wait 和 nowait,分别表示运行外部程序后等待结束后再返回和立即返回(注:在 [uninstall_run] 小节中最好用 wait 参数,以免因程序运行未结束而卸载不掉)。
第三部分可用值为 show 和 hide,表示运行外部程序时显示或隐藏其界面。
[setup_run] 小节的内容只在安装后运行,[uninstall_run] 小节的内容只在安装前运行。
公用变量(注意:所有的路径格式,均无最后的“\”,如:c:\windows,而不是c:\windows\)
第一部分(适用于文件目录处,也适用于注册表文件 *.reg 中):
#setupdir# 安装目标路径,如:c:\program file\media player classic
#windir# windows所在目录,如:c:\windows、c:\winnt
#sysdir# windows的system目录,如:c:\windows\system、c:\winnt\system32、c:\windows\system32
#progdir# Program File 目录,如:c:\Program File
第二部分(适用于快捷方式起始位置处,即shortcut等小节):
DESKTOP 桌面
DESKTOPDIRECTORY 桌面目录
FONTS 字体目录
NETHOOD 网络邻居
PERSONAL 我的文档目录
PROGRAMS 开始菜单程序目录
SENDTO "发送到"目录
STARTMENU 开始菜单目录
STARTUP 开始菜单启动项目录
FAVORITES 收藏夹目录
APPDATA 当前用户的特定的应用程序数据存储文件夹,例如:C:\Documents and Settings\admin\Application Data
Quick_Launch 快速启动栏
COMMON_DESKTOPDIRECTORY 所有用户桌面目录
COMMON_FAVORITES 所有用户收藏夹
COMMON_PROGRAMS 所有用户开始菜单程序目录
COMMON_STARTMENU 所有用户开始菜单目录
COMMON_STARTUP 所有用户开始菜单启动项目录
第三部分(适用于编写脚本时遇到文件名或目录与分隔符等发生冲突的情况,如 [setup_run]、[file] 等小节)。
字符 替换宏
= <myinstall_equals>
, <myinstall_comma>
<myinstall_vline>
# <myinstall_num_sign>
回车 <myinstall_enter> 用于组件脚本中 [main] 小节下的 content(组件说明)。
#setupname# 安装包名称,如:Media Player Classic 精品版(只适用于快捷方式子目录处)。
注意:
1、所有的文本文件,如setup.ini、mpcplugin.ini、reg.reg、unreg.reg,都应使用ansi编码而不是unicode,以保证和win9x的兼容性。reg文件的格式也应是win9x格式,即第一行为“REGEDIT4”。
制作后再用 winrar 压缩,压缩时选中“创建自释放格式档案文件”(也可再选中“创建固定档案文件”以减少体积),然后在“高级”中选“SFX 选项”按钮,在常规/安装程序/释放后运行那里填入 setup.exe,“模式”中选中“解压到临时文件夹”,“覆盖方式”用“覆盖全部文件”,若要和我的版本解压时风格一致,请使用本站的 mpc.sfx 复制到 winrar 所在目录,并在“缄默模式”中选中“隐藏启动对话框”,然后在自释放模块中指定 mpc.sfx 即可。
Silence
如果用 7-zip 打包,可以用如下命令:
copy /b 7zs.sfx + mympc.7z mympc.exe
或者:
7z a -sfx7zs.sfx mympc.exe * -r