您的批评和鼓励都是我把编程无限办好的动力! 您编程时遇到困难,或遇到不顺心的事想发发牢骚尽管到这里来吧! 虽然本网力求全面,但也不能包罗万象,这些我筛选出的优秀网站连接就是对本站最好的补充! 学习编程当然也离不开书本了,这里收集大量编程书籍! 编程无限之源码超市,这里收集的代码令你意想不到的全面! 欢迎光临编程网校,这里专门收集VB/CB入门文章及技术文章! 欢迎光临编程无限!
     
       
 
当前位置:中文资料 >> 其他
制作VB安装程序问答(二)
  资料类型: 其他 上传时间: 2001-02-21 阅读次数: 2764



制作VB安装程序问答(二)
(作者:李海)


  问题:我用VB+Access开发数据库系统。但到发布时用VB自已的发布向导时,我程序目录中的子目录的文件却加入不正常,向导不按子目录区分,而是将所有文件都加到程序目录中。我该怎么办?



  答: VB的安装向导是支持制作包括子目录的安装程序的。运行安装向导到“文件小节”一步,在对话框中选择“添加”按钮,然后选择应该放置在子目录中的文件添加到文件列表中。

  然后从文件列表中选择该文件,点击 “文件详细资料”按钮。在图1所示对话框中设置目标路径,最好不要用绝对路径来指定安装位置,这样会给用户带来不便。安装向导使用宏来指示文件要安装的位置,这些宏只在安装程序中有效,宏的含义参见表1。如果要将文件放置在应用程序目录下的Data子目录下,可以使用$(AppPath)Data来指定安装路径。

  图1 设置文件的安装目录



  问题:安装时,用VB自己的“展开与打包向导”制作的安装盘,不知道怎么让程序在桌面上放一个快捷方式?



  答:VB“展开与打包向导”所生成的安装程序的工作步骤是这样的:先运行Setup.exe,这个程序将VB的运行库安装到用户的机器上,同时将.cab文件中的文件释放到临时目录中,然后再调用临时目录中Setup1.exe完成余下的安装工作。Setup1.exe是由VB写的(正是这个原因所以要先安装VB的运行库),其源程序可以在VB98WizardsPDWizardSetup1中找到。如果你对VB的安装程序不满意,希望添加新功能,可以直接修改Setup1.vbp。具体到你的问题,在VB中可以打开Setup1.vbp,然后修改Setup1.frm的Form—Load事件,在其中可以找到如下几行:

  ′ Create program icons (or links, i.e. shortcuts).

  ′ If (fMainGroupWasCreated = True) Or ((cIcons 〉 0) And TreatAsWin95()) Then

    ShowStaticMessageDialog ResolveResString(resPROGMAN)

    CreateIcons gsICONGROUP

   ′Do the same for other sections in SETUP.LST if you′ve added your own.

   ′CreateIcons ″MySection″

   ′CreateIcons ″MyOtherSection″

   End If

  在If.. End If中加上:

  OSfCreateShellLink ″....Desktop″, _

    ″我的程序″, gstrDIR—DEST+″MyProg.exe″, ″ ″

  重新编译Setup1.vbp,用Setup1.exe替换掉原来的Setup1.exe即可。



  问题:用VB 5.0安装向导生成的安装程序,安装到最后时总是显示“文件C:WindowsSystem$(DllSelfRegisterEx)不能被注册,由于它未找到”的提示信息后安装失败,请问原因。



  答:这是VB 5.0/6.0的一个Bug。

  如果运行Visual Basic 5.0生成的安装盘,会产生下面的错误:

  The file ′〈Windows System Folder〉$(DLLSelfRegisterEx)′ could not be registered because it was not found.

  如果运行Visual Basic 6.0生成的安装盘,会产生下面的错误:

  The file ′〈TEMP Folder〉Msftqws.pdw$(DllSelfRegisterEx)′ could not be registered because it was not found.

  这个问题发生在分发Microsoft Calendar control(MSCal.ocx)时,MSCal.dep文件中的“Register="行被错误地设置成 $(DLLSelfRegisterEx)了,解决办法如下:

  1. 使用记事本打开Setup.lst文件。Setup.lst文件是Setup Wizard或PDW制作安装盘时生成的。

  2. 查找$(DLLSelfRegisterEx)。你将看到在MSCal.ocx的一行中有$(DLLSelfRegisterEx)。

  3. 修改 $(DLLSelfRegisterEx) 为$(DLLSelfRegister)。

  4. 关闭记事本并保存文件。

  5.运行Setup.exe。

  如果希望今后生成的Setup.exe都不出这样的错误,可以这样做:

  1. 使用记事本打开MSCal.dep文件。你可以在MSCal.ocx所在的目录(通常是Windows 95/98的WindowsSystem或Windows NT的WinntSystem32)找到MSCal.dep文件。

  2. 查找$(DLLSelfRegisterEx)。你将可以在“Register=”一行看到$(DLLSelfRegisterEx)。

  3. 修改 $(DLLSelfRegisterEx) 为$(DLLSelfRegister)。

  4. 关闭记事本并保存文件。

表1 安装向导使用的宏及其含义 宏
含义

$(WinSysPath)
Windows 95/98下的\Windows\System子目录,或Windows NT下的\Winnt\System32目录。

$(WinSysPathSysFile)
Windows 95/98下的\Windows\System子目录, 或Windows NT下的\Winnt\System32目录,作为系统文件,当删除应用程序时它不删除。

$(WinPath)
Windows 95/98下的\Windows或Window NT下的\Winnt。

$(AppPath)
用户指定的应用程序目录,或Setup.lst文件中[SETUP]部分指定的DefaultDir值。

$(ProgramFiles)
应用程序通常所安装到的目录,通常为C:\Program Files。

$(CommonFiles)
有时安装共享文件的公用目录,通常为C:\Program Files\Common Files。

$(MSDAOPath)
数据访问对象(DAO)部件在注册表中的位置,不能用于自己的文件。


推荐给朋友 点 评( 0 ) 返回前页 关闭此页
   
  本类最热文章排名:
  1.制作VB安装程序问答(一)
2.走进VB6啃一块骨头
3.做成一个时间限制的测试版
4.用VB创建Excel报表
5.自动装入注册设置
6.自己编程模拟 MouseEnter,MouseExit 事件
7.再谈VB程序的加密
8.自动卷动TextBox
9.VB编程的必备技巧
10.地大物博——谈谈在VB6.0中如何使用资...
   
   
  评论:
 
 
 

 

关于本站 版权声明 联系方法
编程无限 V4.1 Copyright © 1999-2008 21code.com

京ICP备05006938号