首先,新建一个工程:File->New->Common->InstallScript Project 添入你的工程名,去掉Create project file in 'Project Name' subfolder 前面的对钩,选择“OK ”。
进入Project assistant 界面。单击“- - - > ”按钮。根据需要填写公司名、应用程序名。
添加组件,这里默认,点下一步。
选择上一步的组件,根据需要选择你要最终将文件拷贝到的地方。如:我需要将我的程序安装到“C:/Program Files/广州升和电器设备有限公司/高考监控软件/xxx.exe"则选择Program Fiels 点右键选择:New Folder 将文件夹重命名为:广州升和电器设备有限公司 ,右键点击“广州升和电器设备有限公司”选New Folder ,重命名为:高考监控软件。选择“高考监控软件”文件夹,点ADD FILES 添入你的应用程序等。如下图:
添加快捷键:选择NEW按钮,出现选择对话框,选择刚才添入的exe文件。可以对它进行重命名。
下一步,出现询问注册对话框,这里缺省,下一步。
询问你的打包程序所出现的对话框:如:阅读协议、公司/用户名、安装路径等。
再下来是选择安装语言,选择简体中文(如果安装了的话),你会发现默认的英文是不能不选的,怎么修改,后面有介绍。
选择最后安装程序生成形式,这里选CD-ROM。运行Build Installations。一个简单的安装程序就出来了。
下面讲几个修改:
1.修改语言。选择Installation Designer选项卡,选择General Information 在中间界面会看到String Table里出现了简体中文和英文。默认为英文。在简体中文点右键,选make define。然后在回到Project Assistant的选择安装语言界面将英文前面的对钩去掉。
2.安装时提示安装.NET2.0。选择Installation Designer- - - >Support Files/Billboards- - - >Language Independent.在右边工作区中点右键选Insert Files Ins 将dotnetfx.exe加入,然后在Install Script的Dlg_SdFeatureTree:中修改代码:
if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SdAskDestPath;
szTitle = "";
szMsg = "";
szFeatures = "";
nLevel = 2;
if (nSetupType = CUSTOM) then
//{{IS_SCRIPT_TAG(Dlg_SdFeatureTree)
nResult = SdFeatureTree( szTitle, szMsg, TARGETDIR, szFeatures, nLevel );
//}}IS_SCRIPT_TAG(Dlg_SdFeatureTree)
if (nResult = BACK) goto Dlg_SdAskDestPath;
endif;
MessageBox ("接下来系统将安装.NET2.0,如果系统在安装的过程中提示已经安装则取消即可。", INFORMATION);
szJDK = SUPPORTDIR ^ "dotnetfx.exe";
if (LaunchAppAndWait (szJDK, "", WAIT) < 0) then
MessageBox ("不能加载程序 .NET2.0。",SEVERE);
endif;
3.在安装程序复制文件到指定目录后,修改完成对话框,要求实现询问时候查看自述文件和运行程序功能。首先按照添加dotetfx.exe的方法加入文本文件ReadMe.txt。加入函数OnFirstUIAfter()
STRING szTitle, szMsg1, szMsg2, szOpt1, szOpt2,szProductName;
NUMBER bvOpt1, bvOpt2;
NUMBER bShowUpdateServiceDlg;
begin
ShowObjWizardPages(NEXT);
szProductName = "高考系统监控软件";
SdProductName (szProductName);
szTitle = "高考系统监控软件安装程序";
szMsg1 = "%P 安装程序已经完成. " +
"选择您想要的服务.";
szMsg2 = "单击"完成"完成%P安装程序.";
szOpt1 = "查看自述文件.";
szOpt2 = "运行%P.";
bShowUpdateServiceDlg = FALSE;
//{{IS_SCRIPT_TAG(Dlg_SdDinishEx)
if ( BATCH_INSTALL ) then
SdFinishReboot ( szTitle , szMsg1 , SYS_BOOTMACHINE , szMsg2 , 0 );
else
// If the update service is enabled, show finish dialog that includes
// update check option.
if( bShowUpdateServiceDlg && ( ENABLED_ISERVICES & SERVICE_ISUPDATE ) ) then
if( SdFinishUpdateEx( szTitle, szMsg1, szMsg2, szOpt1, szOpt2, TRUE ) ) then
// Don't check for updates in silent mode.
if( MODE != SILENTMODE ) then
UpdateServiceCheckForUpdates( "", FALSE );
endif;
endif;
else
SdFinish ( szTitle , szMsg1 , szMsg2 , szOpt1 , szOpt2 , bvOpt1 , bvOpt2 );
if (bvOpt1) then // Display the read me file.
LaunchAppAndWait (NOTEPAD, READMEFILE, LAAW_OPTION_WAIT);
endif ;
if (bvOpt2) then
LaunchApp (TARGETDIR ^ "CustormSystem.exe","");
// szTitle=TARGETDIR;
/* SprintfBox (INFORMATION, szTitle, "Launch %s here.",
szProductName); */
endif;
endif;
endif;
//}}IS_SCRIPT_TAG(Dlg_SdDinishEx)
end;
工程到此也接近尾声了。