织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>PC常识>

制作功能完备的数据库安装程序

罗索客 发布于 2004-04-01 10:24 点击:次 
制作安装程序是数据库软件开发的最后一步,InstallShield无疑是众多可选工具中的佼佼者。它除了提供直观方便的向导外,还提供内容丰富的编程。利用这种类似VC的脚本语言可以创建功能强大的安装程序。 在很多情况下,没有必要自己动手编写代码,只需从InstallShield的帮
TAG:

  制作安装程序是数据库软件开发的最后一步,InstallShield无疑是众多可选工具中的佼佼者。它除了提供直观方便的向导外,还提供内容丰富的编程。利用这种类似VC的脚本语言可以创建功能强大的安装程序。

  在很多情况下,没有必要自己动手编写代码,只需从InstallShield的帮助文件中把示例代码复制过来,稍加修改就可使用。当利用Project Wizard创建一个新的项目,就会生成一个脚本文件Setup.rul,它只是一个框架,功能仅限于将所选的组件(Components)复制到指定的位置。本文介绍如何以最少的代码完善Setup.rul的功能。

  一、验证序列号

  在使用Project Wizard时,选择用户信息(User Information)对话框,它将在ShowDialogs函数中显示:询问用户名、公司名、序列号。可在此对话框显示之后判断序列号的有效性,以决定是否继续安装。

  Dlg_SdRegisterUserEx:

  nResult=DialogShowSdRegisterUserEx();

  if (nResult=BACK) goto Dlg_SdLicense;

  if (svSerial!=″35296-0017544-62261″) then

  //如果序列号与给定值不匹配

  MessageBox(″Serial Number is incorrect!″,SEVERE);

  Exit; //退出安装

  endif;

  二、安装时播放声音

  PlayMMedia (MMEDIA_MIDI , ″c:\\\\Windows\\\\Temp\\\\_istmp0.dir\\\\start.mid″,

  MMEDIA_PLAYCONTINUOUS, 0);

  //连续播放MIDI文件

  三、显示图片

  安装程序在运行的过程中可以显示一些图片来介绍软件的新特性,这在InstallShield中称为BillBoards,可显示的图片类型为wmf、bmp、dib。自动显示图片的方法是把图片命名为Bbrdn.bmp(其中n为序数1,2,3…),并将它们加到Setup Files面板中。若你的软件可能安装到低分辨率的机器上,你就应该再准备一套低分辨率的图片,并按顺序命名为Bbrdln(l表示“low”,n为序数1,2,3…)。自动显示图片的缺点是:图片在数据复制过程中以一定的时间间隔自动显示,不受程序控制。下面介绍一种控制图片显示的方法:

  szBitmap=″C:\\\\Windows\\\\Bubbles.bmp″;

  //包括完整路径信息的图片名

  nID_BITMAP=12;

  //若图片来自Dll,它是图片在资源文件中的ID,若图片来自一个文件,任意设一个值

  nCorner=UPPER_LEFT;

  //指定图片显示的位置,此处为左上角

  SetDisplayEffect(EFF_FADE);//设置显示效果

  PlaceBitmap(szBitmap, nID_BITMAP, 10, 10, nCorner);//在左上角(10,10)处显示图片

  四、创建程序组和快捷方式

  要在SetupFolders函数中编写代码。创建如下图所示的程序组和快捷方式。


新窗口浏览

  代码如下:

  function SetupFolders()

  STRING szProgram,szFolder;

  begin

  szFolder=″膝关节病案管理系统″;

  CreateProgramFolder( szFolder );

  ShowProgramFolder( szFolder, SW_SHOW );

  szProgram=TARGETDIR ^ ″\\\\DBSet.EXE″;

  LongPathToQuote(szProgram, TRUE);//给命令行加上引号,因为路径中可能包含空格

  AddFolderIcon( szFolder, ″数据库访问设置″, szProgram, TARGETDIR,″″, 0, ″″, REPLACE);//创建快捷方式″数据库访问设置″

  Delay(1);//延时1秒

  szProgram= UNINST+′ -f″ ′+TARGETDIR ^ ′\\\\Uninst.isu″ ′;

  AddFolderIcon( szFolder, ″卸载病案管理系统″, szProgram, TARGETDIR,″″, 0, ″″, REPLACE ); //不能用LongPathToQuote给该程序项加引号,否则不能正常执行!

  ReloadProgGroup (szFolder);//刷新程序组

  Return 0;

  end;

  AddFolderIcon函数的功能是在它的第一个参数szFolder处插入快捷方式。szFolder可以取如下值:

  FOLDER_DESKTOP 在桌面创建快捷方式

  FOLDER_STARTMENU在″开始″菜单中创建快捷方式

  FOLDER_STARTUP 在″启动″组中创建快捷方式

  FOLDER_PROGRAMS 在″程序″组中创建快捷方式

  五、修改注册表

  如果你的软件有一些设置(如是否有启动声音等)要保存在注册表中,就必须修改注册表。注册表的修改是在SetupRegistry中完成的。

  下面的代码演示了如何在注册表的 HKEY_LOCAL_MACHINE\\SOFTWARE\\Joint主键下创建一个DWORD类型的标记Wav来记录Joint程序是否有启动声音。Wav值为1时,表示有启动声音,为0时表示没有。

  function SetupRegistry()

  NUMBER nRootKey,nType;

  STRING szKey,szClass;

  begin

  nRootKey=HKEY_LOCAL_MACHINE;

  RegDBSetDefaultRoot(nRootKey);

  szKey=″SOFTWARE\\\\Joint

  szClass=″″;

  RegDBCreateKeyEx(szKey, szClass); ″;

  nType = REGDB_NUMBER;

  RegDBSetKeyvalueEx(szKey, ″Wav″, nType, ″1″,-1);

  return 0;

  end;




(作者:经乾 1999年12月28日 16:02) (经乾)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/200404/2415.html]
本文出处: 作者:经乾
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容