当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: mail_lq@sohu.com ......
 ·shell的用法    »显示摘要«
    摘要: 想做一个看网络电视的小程序 希望用shell调出realpalyer,问题是怎么在shell里设置参数 是的可以在调出realpalyer的同时连上网络电视的网址 shell改怎么写? ......


关于用VC制作安装程序

关于用VC制作安装程序,大家有什么经验、技巧,介绍介绍,只要有用,都给分!!!

NO.1   作者: alphapiao

用InstallShield制作专业Windows安装软件    
     
  苏贵洋    
     
    InstallShield可以说是软件安装的最好制作工具。其简单的操作、完全可视化的界面、方便的调试功能、多平台语言的支持使它几乎成为了安装制作的标准。难怪微软在它的拳头产品Visual   C++4.X中开始,就以捆绑的形式包括了InstallShield3。而今,随着日月的推移,InstallShield更是羽翼丰满,又陆续推出了InstallShield   Professional   5.X(包括East   Edition,West   Edition)和InstallShield   6.0,功能更为强大,操作更为简便。对于Shareware软件的制作者,包装上一个漂亮的安装程序,实在是非常必要。本文简要探讨一下用InstallShield制作安装软件的方法,希望对感兴趣的朋友有所帮助。  
   
    在InstallShield的各种最新版本中,其专门制作的East   Edition,可应用于汉语(GB、BIG5)、英语、印度尼西亚语、日语、韩语、俄语、土耳其语、泰国语等多语种。本文便以InstallShield   East   Edition   5.1为探讨对象进行讨论。InstallShield的其它语种版本的操作和East   Edition几乎完全相同。  
   
     
    进入InstallShield   East   Edition   5.1后便是两个“向导”面对你。  
   
    习惯用VB的朋友可以用VB5   Project   Wizard,它需要你的系统中安装了VB5。  
   
    更为常用的是Project   Wizard,它可以定制更为普便适用的安装程序。进入Project   Wizard后如图1:在第一栏中写入你的程序的名字,第二栏中写入公司的名字,在第三栏中选择开发程序使用的根据,第四栏中选择程序的种类,最后一栏中填入程序的可执行文件的完整路径和名字。单击下一步,进入选择定制对话框:安装自己的喜好选择希望安装过程进行时出现的对话框,按Priview键可以预览一下相应对话框的效果。接下来是选择要安装目标平台。也即程序将被运行在什么平台之上。InstallShield共提供了四种平台供选择。然后是多语种支持,也就是安装时可以提供的语言支持。再向下依次是安装类型选择、指定构成成份、指定文件组,最后是所有选项的概括。完成选择后便可得到你自己定做的Project,进入InstallShield的可视化编程环境。  
   
    下面让我们一步一步地完成我们的制作。  
   
    整个InstallShield的可视化程度很高。支持鼠标右键的操作,在各个位置的鼠标右键可激活各种功能;编译、调试方便,简直是VC++这种大型程序的简写本,却又比VC++方便了许多。  
   
   
    一、在左面的选项中选择Scripts。  
   
   
    这是全部制作的核心部分,也是我们所最应集中精力攻克的小小关口。当然不更改Scripts中的源程序也能制作一个标准的安装程序,但如果能够控制Scripts的编程,整个安装程序的制作水准就可以达到一个新的高度,这也许是您与普通制作者区别的开始吧。其实InstallShield的Scripts非常类似于C和C++的程序编写,相信对大多数程序员来说是非常容易掌握的。而对于没有什么C和C++的基础的朋友来讲,看完这篇文章后,相信你也能很好地去制作自己的Scripts,因为它具有相当程度的重复性,更容易被“依葫芦画瓢”。  
   
    Scripts的布局同C语言非常类似。首先是头文件的包含,紧接着是字符串的定义、函数原形的说明、全局变量的说明。你可以做的是在此加上你的函数说明、全局变量的说明。  
   
    Scripts中遵循C的规则,同样有局部变量和定义。遵循C++的注释规则,可以用//   注释内容来进行单行注释,也可以用/*   注释内容   */来注释一块语句。所有的关键字、宏定义都以不同颜色的字体标出,非常直观。Scripts   的编程遵循结构化编程的思想,提供了大量类似Windows   API的函数库供调用,每个宏定义都有详细的说明,每个函数除了详细地说明,解释每个变量的意义外,还都附有相应的例子,参考这些说明和例子,可以让新手在非常短的时间内上路。对用VC++开发过Windows程序的朋友来讲,简直就是一种6=2×3的转变而已,可以非常轻松地掌握。  
   
    在程序的最前段,是program…………………endprogram,它相当于C中的main()   {……}主函数。后面是一个个子函数体的程序,排列顺序是按调用顺序排列。全部函数都非常简单易懂,并且一般不需太大改动。下面将几个常用、经常改动的函数加以说明。  
   
       function   SetupFolders()  
   
    function   SetupFolders()  
   
    NUMBER   nResult;  
   
    STRING   szFolderDir;  
   
    begin  
   
    szProgramFolder   =   FOLDER_PROGRAMS^    
   
    SHELL_OBJECT_FOLDER;   //建立程序组或快捷方式的位置  
   
  szItemName   =   "眼部图象多功能处理系统";   //应用程序名称  
   
  szProgram   =   TARGETDIR^eye95.exe;   //可执行文件名  
   
  szParam   =   "";  
   
    LongPathToQuote   (szProgram,   TRUE);//合并路径  
   
    LongPathToShortPath   (szParam);//转为短路径,专为Win31和WinNT3.5而用  
   
    szCommandLine   =   szProgram   +   "   "   +   szParam;   //生成命令行  
   
    szWorkingDir   =   TARGETDIR;//工作路径  
   
    szIconPath   =   "";  
   
    nIcon   =   0;  
   
    szShortCutKey   =   "";  
   
    nFlag   =   REPLACE;  
   
    AddFolderIcon   (szProgramFolder,   szItemName,    
   
    szCommandLine,  
   
    szWorkingDir,   szIconPath,   nIcon,  
   
    szShortCutKey,   nFlag);  
   
    szProgramFolder   =   FOLDER_DESKTOP;  
   
    LongPathToQuote(szCommandLine,   TRUE);  
   
  if(SprintfBox(   OK|CANCEL,"请选择:","%s","你想在桌面上创建快捷方式吗?")==6)    
   
    then  
   
    AddFolderIcon(szProgramFolder,szItemName,szCommand  
   
    Line,    
   
    szWorkingDir,szIconPath,nIcon,szShortCutKey,    
   
    nFlag);  
   
  endif;  
   
  szProgramFolder   =   FOLDER_PROGRAMS^   SHELL_OBJECT_FOLDER;  
   
  szItemName="readme";  
   
  szProgram   =   WINDIR   ^   "notepad.exe";  
   
  szParam   =   TARGETDIR^"readme.txt";  
   
  LongPathToQuote   (szProgram,   TRUE);  
   
  LongPathToShortPath   (szParam);  
   
  szCommandLine   =   szProgram   +   "   "   +   szParam;  
   
  AddFolderIcon(szProgramFolder,szItemName,    
   
    szCommandLine   ,  
   
    szWorkingDir,   szIconPath,   0,  
   
    szShortCutKey,nFlag   );  
   
    nResult   =   CreateShellObjects(   ""   );  
   
    return   nResult;  
   
    end;  
   
    其实这段程序说白了是对AddFolderIcon的一个应用而已。应用AddFolderIcon来在开始选单中添加程序组、程序项或在桌面桌面添加快捷方式等等。所以首先读一下AddFolderIcon的说明非常必要。它共有八个入口参数。第一个参数szProgramFolder是确定要在Win95中添加选单的位置,例如  
   
    "C:\\WINDOWS\\STARTMENU\\PROGRAMS\\ACCESSORIES\\GAMES"。  
   
    而在Windows95和WinNT4.0中,还可以用系统的宏定义:FOLDER_DESKTOP(添加在桌面上)、FOLDER_DESKTOP(添加在开始选单中)、FOLDER_PROGRAMS(添加在开始-〉程序选单中)等。第二个参数为szItemName,即添加的图标的名称。第三个参数szCommandLine相对繁琐一些。它为了指定可执行程序和它的命令行,或者在子目录下的全路径。szWorkingDir为工作路径,可为空:“”,或为TARGETDIR。szIconPath为图标路径,一般设为空:“”。nIcon为图标序数,即若应用程序有若干个图标,想显示那个,依次为0,1,2……。  
   
    szShortCutKey用来定义快捷键。nFlag用来指定图标的外观。如果在路径中包含长路径名,则必需用‘’或“”来包含,然后用LongPathToQuote函数来合并。当用于16位的Win31和WinNT3.5时,还应再调用一下LongPathToShortPath进行转换。如此便可创建程序组、程序项或快捷方式了。太麻烦了?没关系,如果您认为这一段操作实在麻烦,您完全可以略过,到Resource中去完成,详情请往后看。  
   
    function   SetupScreen()  
   
    begin  
   
    Enable(   FULLWINDOWMODE   );  
   
    Enable(   INDVFILESTATUS   );  
   
    SetTitle(   "眼科多功能处理系统安装程序",   28,YELLOW   );//修改字体和颜色  
   
    SetTitle(   "眼科多功能处理系统",   0,   BACKGROUNDCAPTION   );   //   标题行的字体和颜色  
   
    Enable(   BACKGROUND   );  
   
    Delay(   1   );  
   
    end;  
   
    这儿主要是SetTitle   (szString,   nPointSize,   nColor)函数的应用。  
   
    三个参数分别代表了所写字符串的内容、字体大小、文字颜色。  
   
    function   DialogShowSdWelcome()  
   
    NUMBER   nResult;  
   
    STRING   szTitle,   szMsg;  
   
    begin  
   
    szTitle   =   "欢迎";  
   
    szMsg   =   "欢迎您光临   眼科多功能处理系统   安装程序!";  
   
    nResult   =   SdWelcome(   szTitle,   szMsg   );  
   
    return   nResult;  
   
    end;  
   
    在这个函数里写入您想制作程序的标题。  
   
 

NO.2   作者: systemid

写注册表是根据需要自己定制,一般保存一些常用的信息,当然也包括用户要求保存的注册表项,你只要保证你写的卸载程序在卸载时清除注册表项就可。  
  主要问题是把程序打包时怎样处理它,包括压缩,安装时自动解压等,不知哪有现成的库或什么的。

NO.3   作者: OKzhou

InstallShield   for   Microsoft   Visual  
  C++   6使用初探  
  合肥   汪涛   (wander@aapla.edu.cn)    
   
  --------------------------------------------------------------------------------  
   
  ----InstallShield   for   Microsoft   Visual   C++   6   是一个非常好的制作安装程序的软件。从它的名称可以看出它是为Visual   C++   6定制的软件,但这并不说明它只能用于Visual   C++   6的安装程序制作。其他应用程序同样可以用它制作安装程序,只不过这时需要单独启动InstallShield   for   Microsoft   Visual   C++   6,且需要人工加入一些代码。    
   
  一、在Visual   C++   6集成开发环境中使用它  
  ----通常在Visual   C++   6集成开发环境中完成一项工程后,选择Tools菜单中的InstallShield   Wizard   即可启动InstallShield   Visual   C++向导,主要按照向导的步骤依次执行就可以顺利完成安装程序的制作。    
  ----第一步选择工程的名称,通常有一个预置的工程,它是你最近工作过的工程,可以通过Browse按纽改变它,点击“下一步”,进入第二步;第二步填写应用程序的有关信息,它包括应用名称(Applicaion   Name)、公司名称   (Company   Name)、开发环境(Development)、应用类型(Application)、版本(Application   Version)、应用程序执行文件(Application   Executable),点击“下一步”,进入最后一步;最后一步生成一个摘要。显示生成两个文件组:可执行文件组和动态连接库组。点击“完成”按纽,就可以启动InstallShield   for   Microsoft   Visual   C++   6,这时在   InstallShield   for   Microsoft   Visual   C++   6集成环境中选择Build菜单下的Compile   项,进行编译成功,安装程序就制作完毕。    
   
     
   
     
   
  ----为了能够在操作系统的开始菜单中生成快捷方式,还必须进行一定的修改才行。一般的习惯是在开始-->程序菜单中生成应用程序的文件夹,在此文件夹中包含应用程序的快捷方式和其他一些快捷方式,比如ReadMe文件和帮助文件。在InstallShield   for   Microsoft   Visual   C++   6中选择Resource标签,展开Shell   Object,再依次展开Explore   Shell、Desk、StartMenu,在Programs上单击右键,选择New-->Folder,   就可以生成该应用程序的文件夹,你可以给它取一个适当的名字。接下来要生成应用程序的快捷方式,在新建的文件夹上单击右键,选择New-->Shortcut,在左侧的Shortcut对话框的表上双击后单击右键选择“属性”,对Shortcut的相关属性进行编辑,关键在Target   项中填上\*.exe,*.exe代表该快捷方式所指向的应用程序,用具体的应用程序来替换它,至于其他几项可以不做修改。这样就可以生成快捷方式。    
   
     
   
  ----如果要生成Readme文件,可按以下步骤。先用记事本编辑readme文件并存盘。然后,在InstallShield   for   Microsoft   Visual   C++   6中选择File   Groups标签,展开Program   Executables,双击Links,在右边相应的对话框中单击右键,在弹出菜单中选择Insert   Files...,将刚才编辑的Readme文件插入其中。再次编译,生成新的安装程序,最后为了生成安装盘,还要继续下面的操作。切换到Media标签,利用向导建立磁盘映像,制作安装媒体,向导默认生成光盘的磁盘映像,你自己还可以选择生成其他安装媒体的磁盘映像,如3.5寸软盘,该步完成之后就会在Media标签中出现安装媒体标识,这时它存在硬盘上,要把它放到可移动媒体(如光盘和软盘)上,还要将它发送到您想要存放的媒体上。在安装媒体标识上单击右键,从弹出菜单中选择Send   Media   To,   将其发送到某种媒体上。到此,这个过程结束。需要注意的是,制作过程中,每次进行修改后,必须编译并重新生成安装媒体的磁盘映像,否则你的磁盘映像依然是上一次的结果。    
   
  二、为一般的非VC6应用程序制作安装程序  
  ----首先单独启动InstallShield   for   Microsoft   Visual   C   ++   6,在初始界面中选择Project   Wizard,你就可以根据向导一步一步生成一项工程,最后对代码做一定的修改,并编译成功,剩下的工作和上面的方法一样。    
  ----具体做法如下:第一步填写你的应用程序的有关信息;第二步选择你的安装程序需要提供给用户的那些对话框;第三步选择你的应用程序运行的目标平台的操作系统版本,包括Windows   3.11、Windows   95、Windows   NT等;第四步选择安装语言版本;第五步提供给最终用户的安装类型,常见的安装类型有典型、定制、压缩等;第六步选择安装中定义的组件,常见的组件有程序文件、帮助文件、示例文件、共享文件;第七步选择文件组;第八步生成工程摘要,向导工作完成。选择   Finish按钮,InstallShield会创建你的安装计划,并打开Project安装计划工作编辑区。    
   
     
   
     
   
  ----如果只是为一个简单应用程序,可以删除一些不必要的组件和文件组。例如在Components标签中Example   Files、   Help   Files、   Shared   DLLs,只保留Program   Files,在File   Groups标签中,可以删去Example   Files、Help   Files、   Program   DLLs   、Shared   DLLs,保留Program   Executable   Files。最后是最关键的工作,因为这时要你手工修改安装程序的脚本代码。首先你必须把你的可执行文件加入到Program   Executable   Files中,再把Program   Executable   Files加到Program   Files中,做法是在   Program   Files属性框中选择Include   File   Groups栏,点击Add...按纽,加入Program   Executable   Files。选择Scripts标签,切换到setup.rul窗口,准备对代码进行修改。在代码的变量声明部分加入STRING   svPath,再把svPath   =   TARGETDIR   ^   “*.exe";加入TODO   comment   block注释块的下面,换行后,单击右键,在弹出菜单中选择函数向导Function   Wizard...   .,在函数类框中选择“Long   filename",然后在函数名框中选择LongPathToQuote函数,点击“下一步”,点击完成,向导自动加入相应代码;再换一行,重新启动函数向导Function   Wizard...,选择Shell中的   AddFolderIcon函数,点击下一步,对函数进行编辑,对szProgramFolder、szWorkingDir、   szIconPath、szShortCutKey均填入“",对szItemName填入程序名,注意要加引号,对   szCommandLine填入svPath,对nIcon填入0,对nFlag填入REPLACE,点击完成按纽,向导自动加入相应代码。保存修改,并编译工程,生成安装程序,剩下的工作同第一种情况。    
   
  ----以上就是制作安装程序的两种不同情况,当然为了使它更加美观,你还可以对它进行进一步的修改,比如你可以用自己的安装程序启动图片替换缺省的初始画面,只要选择Setup   files标签,删除setup.bmp   ,再插入自己的图片,注意必须命名为setup.bmp   。如果你掌握了安装脚本语言InstallScript   Language,你就能制作出更好的安装程序。    
 

NO.4   作者: houstond

用InstallShield  
  如果你不需要安装数据库啊什么一些比较麻烦的步骤的话  
  他也是很简单的,不用你写它的SCRIPT,最多花两个小时你就可以熟悉了  
  但价格很贵,不知道谁买的起?  
   
  另外   INSTALL   VISE也不错,是共享发放的,从APPLE上来的,QUICKTIME就是用这个做的,QUAKE也是。不过打包和安装的过程算法比较慢  
   
  另外打包WINAMP的,免费,好象功能也比较强大,但写它的SCRIPT让入门的一看就害怕了  
   
  以前还用过一个,不太记得了。其实这些东西都大同小异,只要你不是要做很复杂的安装,那么随便找个稍微熟悉下就可以用了  
 

NO.5   作者: chenybin

我帮你UP吧  
  我想应该是可以在GOOGLE里面找到吧  
  我只是想,如果我的说法对的话,让我知道一下就可以了,谢谢  
  复制文件,解压文件,然后就是注册文件

NO.6   作者: optman

为什么要做重复的工作?安装如果仅仅是拷贝文件,写写注册表也就算了。但是,真正完善的安装程序你知道如何吗?  
   
  InstallShield不错,很专业。但是毕竟是一个公司的产品,也不开放标准。  
   
  Windows   Installer就比较好,这是微软提供的安装服务,你现在可以看到微软的所有软件都是使用.MSI格式分发的。微软的这个安装服务,有SDK,也公开了.MSI的格式,完全适合于VC的二次开发!  
   
  所以,如果你觉得微软还不错的话,不妨尝试尝试。


 ·有关vc的报表设计和打印    »显示摘要«
    摘要: 有没有谁做过试过在vc写的程序嵌入access的报表设计器?其它方法也可以试试,最好就是有源代码了。我要为一些查询设计报表,而这些报表面向用户时是可设计的,不过可设计也是有些限度的,比如改改标题,行标题,线条,删掉其中一项等等。我一直对vc又爱又怕,现在是迫于无奈第一次进行vc的开发,而且时间很紧,所以希望最好能提供例程参照,email可以发短信给我索取。vc这东西,真的很难下口,比追女孩......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE