国人的Delphi Fans 们有没有没自已编写安装程序制作工具的想法? (80分)

  • 主题发起人 主题发起人 PENGS
  • 开始时间 开始时间
P

PENGS

Unregistered / Unconfirmed
GUEST, unregistred user!
我所知道的安装程序好像都是国外的产品(当然不单只安装程序,其他工具也如些居多)
国内有没有人愿意来做一个自已的安装程序制作工具呢(只为DELPHI做)?
当然不一定因为别人的东西做得很成熟啦,我们就不一定要做啦。
其实针对Delphi制作安装程序的软件, 我用起来都不很顺手,
所以最近用上了一个可以在 Delphi的IDE 环境下制作安装程序的控件。
确实爽,
所以想问问如果要做了一个针对Delphi的安装制作程序(只适合中国人用的),
有人支持与提建议吗?
还有, 大富翁开始了练功场, 这个想法可以拿到练功场中去做吗?
 
没人关心?
提前......
请多加水。
 
可以自己做一个嘛,我的安装程序就是自己做的,很有意思的..... :)
 
我的也是呀,安装SQL Server服务器端的数据库,建立用户等。
只要客户安装好了SQL Server,我就可以将数据库端的工作完成。
其实也很简单,拷贝数据库文件->连接文件->建立用户->生成用户密码
需要的话,在输入个注册号什么的。
因为这算专用系统,不是通用的,所以可以量身定做[:)]
 
yzhshi, 我说的不是这个意思, 不知您看明白没有, 我说是做一个像Install Shield Express
这样的软件, 同明可以在Delphi 的 IDE 环境下用的。 可以定制自已的安装窗口,命令等。
delphi-i love, 如果可以的话,可以讲讲你的安装程序是如何做的吗。 如果有意思,我给你加 200 分如何?
 
其实思想是一样的,只是一个开放一些,一个封闭一些,开放的编写起来难度就大了,
而封闭的呢,就仅仅能够适用于自己的程序。
 
主意到是不错,我在Dos下用bc31时还作过类似的东西,可现在看到Install Shield,我实在
觉得没必要做了
 
可以汉化一下,,,兄弟
 
InstallShield 有中文版的
 
我觉得没必要吧,已经有很多非常好用的了.
没有什么更加值得研究的东西了.
难点就是压缩,压缩.
 
有现成的开发源代码安装工具,以前的Youseful,现在的ice
见http://www.nevrona.com/ice/
功能较完善,包括数据库安装及压缩功能,完全pascal源码
以delphi vcl方式提供,可以在Delphi 的 IDE 环境下用,
可惜加入到这个源代码计划的人不多,基本功能还是以前
youseful共享版本完成的,希望有中国人加入这个计划,
打出中国人的名声
 

分析思路: 安装制作器首先有一个主安装程序执行文件(YousefulLoadProgram.EXE)。这个文件负责执行后将用户制
作的安装项目文件(假如用户生成的安装项目文件为 ‘MYSetup.EXE’)解压出来,并执行。安装制作器制作器在生成
安装文件时,首先生成 Setup.1 文件。 Setup1.文件包括由用户制作的主安装程序MYSetup.EXE 文件以及其相关的
DLL 文件。 然后再生成 Files.1文件,将安装程序需要安装的文件全部压缩到Files.1 文件中。最后,制作器将
Setup1.1 及 Files.1 文件以及安装解压信息数据 TselfExtractInfo 合成到 YousefulLoadProgram.EXE 文件后生成一
个新的安装程序 Setup.exe 文件。用户在执行 Setup.exe 文件 (实际上执行的是YousefulLoadProgram.EXE) 时,首
先解压 Setup1.1中的内容到一个临时目录下,即将 MYSetup.EXE 文件及相关DLL文件解压出来。并执行
MYSetup.EXE 文件并传递参数 “-s(Path+Setup.exe) ”(事实上是指定 MYSetup.EXE执行安装时读取数据的文件),
MYSetup.EXE 执行后根据程序中的设定,读取 数据文件中的数据,并安装到当前系统中, 完成安装任务。
关键技术:压缩文件并合成文件。解压文件与根据解压信息读取数据文件解压文件。定制解压信息
解压信息中包括 Setup1.1 与 Files.1 文件的起始位置与终止位置偏移量。

制作安装程序时的分析,
步骤
1. 首先保存 Project 文件,(使用 ToolServices.SaveProjcet)
2. 编译 Project,安装程序执行文件MYSetup.EXE (使用 GetCompileMenu 函数 找到 ‘ProjectCompileItem’ 菜单
项, 使用该菜单项的 Cick 事件。)
3. 调用 TcustomInstall 的BuildDistributables 过程序, 这个过程完成创建分发时的 Setup.exe 文件的工作。
4. 在 TCustomInstall的 BuildDistributables 中调用 CreateStub 创建 ‘Setup.1’ 文件, 将MYSetup.EXE 文件以及
相关的DLL文件包括到Setup.1 文件中去。
5. 调用继承的 Compress (压缩) 过程,Compress过程继承来自 TfileContainer, 这个过程完成生成文件 ‘Files.1’
的任务, 将当前安装项目中设定的所有需要安装的文件全部压缩到 File1.1文件中。
6. 拷贝文件在 ‘YousefulLoadProgram.exe’ 为制作器需要生成的 “SETUP.EXE”文件。
7. 将Setup1.1 文件及 Files1.文件及解压信息 TselfExtractInfo 添加到文件 SETUP.EXE 后。
8. 至此,完成了所有的生成任务。


安装程序运行时的分析,
执行 Setup.exe (实际上执行的是 YousefulLoadProgram.exe) 文件
YousefulLoadProgram.exe 文件执行任务
ReadSelfExtractingInfo: 读取解压缩信息
DecompressSetup1:解压缩文件主程序(安装程序实际需要执行的文件)(MYSetup.EXE)及相关的DLL文件到系统
的一个临时目录下。并根据解压信息生成执行MYSetup.EXE 文件的参数。
调用 TProgramLauncher. ExecuteDos 过程,执行主安装程序, 主程序会根据参数传递及解压缩信息从安装数据
文件中读取数据进行安装。
文件压缩原理及方法已解决 (Compress)。
合成安装程序的方法已解决 (BuildDistributables)。
从安装程序中读取文件信息的方法已解决 (ReadInfoFromArchive).

 
完成赞同 wuyang 兄弟的看法。有兴趣可以联系一下。
所以我正在研究 Youseful. 压缩解压思路已了解得一些。
压缩方法也掌握,合成文件方法也解决。基本上可以编一个小的安装程序制作工具啦。
将思路贴出来大家指点一下。
 
昨晚想了一夜,想想怎样才能把外国软件赶出国门!!!
 
新时代的浪漫主义,呵呵。
 
不一定要把外国软件赶出国门。
既然他们来了,比比看谁的好就行啦。不要老是人家的比咱们的好,
最后我们在叹息,
我想我们如果真做不出比人家好的东西,只能认啦,但是没努力试过,
就不能认输呀。同志们,一起来努力吧
 
快加水,我要给分啦
 
呵呵,相信不久以后我就要为我的软件写一个
因为我有特殊要求,就是安装软件时要把Oracle客户端及一些配置信息也装到客户机上
不知有没有现成的?
 
我会很快做一个让用户在IDE环境下订制安装程序的VCL控件。
有愿意加入的朋友就举手!
 
后退
顶部