2024年6月5日发(作者:)
绿色软件打包工具BoxedApp Packer使用说明
编译 王立群
一、概览
BoxedApp Packer是一款打包exe文件、DLL文件、ActiveX和其它文件为一个独立的
可执行文件的打包应用程序。用户可以放置exe文件所依赖的库、ActiveX控件和所有类型
的文件到这个可执行文件中。
BoxedApp Packer解决的主要问题是创建不需要安装的应用程序。而与此同时,用户将
自由地选择所创建应用程序的组件。用户可以使用任何第三方的DLL,任何ActiveX控件,
简单地赋给BoxedApp Packer打包应用程序的这些信息,它将生成一个自主运行的exe文件。
这种方法所打包的可执行文件在磁盘上不创建临时文件,它不修改注册表但确保所有嵌
入的文件仿佛真实存在那样地运行。当ActiveX/COM库在虚拟注册表中被注册时,嵌入的
文件被直接提取到内存。
此外,用户可以通过为这个可执行文件创建插件——指定的DLL进一步地拓展该应用
程序的功能。插件在应用程序启动时被调用。插件提供特定的API——BoxedApp SDK API,
它允许在运行时创建虚拟文件,用虚拟注册表工作,等等。这样,用户就可以创建真正灵活
的应用程序。例如,用户的应用程序,当它启动的时候,能够加载必要的DLL到整个网络
或整个Internet,然后仿佛它们真正在硬盘上一样地使用。
1、 虚拟文件
虚拟文件是仅生存在当前进程的文件。
BoxedApp的核心是在所谓的用户模式下调用操作系统的截取机制。与在内核模式下运
行系统不同,BoxedApp不要求安装驱动程序,就有系统管理员的权限。尤其是BoxedApp
截取有利于使用文件系统的应用程序的所有调用。
BoxedApp引进了虚拟文件的概念。虚拟文件是不实际存在于磁盘上的文件,但是,应
用程序运行时仿佛文件存在于这里。例如,当应用程序通过分配各自的调用打开虚拟文件
“C:”时,BoxedApp获取控制权并检测被打开文件,如果路径指向虚拟文件,
那么代替调用打开函数的原始文件,BoxedApp返回指向虚拟文件的虚拟句柄。
一组虚拟文件构成虚拟文件系统。
虚拟文件在如下情况下被使用:
1)、用户希望隐藏使用的第三方组件时。
2)、用户希望保护个人文件时(动画、视频、图像)。
3)、用户希望保护自己的知识产权等时。
4)、用户不希望浪费磁盘空间的时候。
5)、其它原因。
当用户在BoxedApp Packer中创建虚拟文件时,要指定它的属性。
1)、虚拟文件被创建的路径(完整路径或相对路径)。
2)、文件是否是插件。
3)、在虚拟注册表中,文件是否被注册为ActiveX控件或COM库。
用户也可以使用功能强大的Plugin API创建虚拟文件。
2、 虚拟注册表
BoxedApp Packer提供所谓的“虚拟注册表”,它是一组仅对打包应用程序可视的注册键
和值。
虚拟注册表在下述情况下可用:
1)、用户希望提供某些注册设置给应用程序时。
2)、其他情况。
3、 虚拟路径
虚拟路径可以是一个相对路径(这样的路径是相对于exe文件的目录)。例如:或
者是完整路径:C:。
它可以包含环境变量(例如:如果用户想使用变量%USERPROFILE%,就指定它为
另外,变量
例如:
4、 插件
插件是文件的独特分类,它们是拓展所创建应用程序功能的Dlls。插件可以使用完整功
能的BoxedApp SDK API,即有创建任何虚拟文件的能力和虚拟注册表操作的能力,等等。
5、 使用ActiveX控件
当用户添加新的文件到项目时,可以指定它为ActiveX控件或COM库。当应用程序启
动时,它需要在虚拟注册表中被注册。例如,用户的应种程序需要播放Flash动画,那么用
户可以简单地添加文件,并指定这个文件为虚拟文件,勾选“在虚拟注册表中注
册”复选框(register in virtual registry),这样打包的应用程序就不再依赖客户计算机是否安
装有flash player。
这是为什么呢?原因是当应用程序启动时,它调用注册指定ActiveX控件的函数(它实
际上可能是一个虚拟文件)。同时,每次函数运行,指定的标识(flag)保留,而所有变化
保存在虚拟环境中。换句话说,实际的注册表没有被修改,其他的应用程序代码就像ActiveX
控件被实际安装到系统那样运行。
这里面,尤其重要的是原始exe文件的修改不需要。
6、 嵌入的命令行
如果用户指定嵌入的参数,那么最终的exe文件将仿佛参数被真正传递给程序那样地运
行。也可以指定变量,可以在下一节中读到更多支持的变量。
例如,如果用户要打包文件,添加虚拟文件“”,指定
“
虚拟文件中加载的“”。
7、 变量
BoxedApp Packer支持能够在优先命令行或虚拟路径中指定的变量。
1)、
2)、
3)、
4)、
5)、
6)、
notepad。
7)、
8)、
用它添加其它参数,例如
9)、
例如"
Arg1 Arg2。它相当于: /C Arg1 Arg2。


发布评论