转自:http://www.uuapp.com/read.php?tid=141
u3p其实是一个zip压缩档,更名成zip扩展名后用winrar开启后会依据程序不同发现如下目录结构,
data/
device/
Host/
manifest/
其 中Host/是程序执行文件所在的位置并放置相关的dll档案,manifest/目录里有两个档案,manifest.u3i跟xxxxxx.ico, manifest.u3i是用xml语法来描述程序版本,厂商,执行路径等等,xxxxxx.ico是出现在u3选单里的图示,
一个manifest.u3i范例
<u3manifest version="1.0">
<application uuid="12345678-1234-1234-1234-123456789abc" version="x.x.x.x">
<icon>xxxxxx.ico</icon>
<name>xxxxxx xxxxxx</name>
<vendor url=" http://www.xxxxxx.com/ ">xxxxxx</vendor>
<description> [U3 build by Eure.ca]</description>
<opti>
<minFreeSpace>x.0</minFreeSpace>
</opti>
<i18n></i18n>
</application>
<acti>
<appStart cmd="%U3_HOST_EXEC_PATH%/xxxxxx.exe"></appStart>
<appStop cmd="%U3_HOST_EXEC_PATH%/appstop.exe"> -t -s xxxxxx</appStop>
<hostCleanUp cmd="%U3_HOST_EXEC_PATH%/appstop.exe"> -t -s xxxxxx</hostCleanUp>
</acti>
</u3manifest>
以下说明几个标签意义,略过没提有兴趣的,请自行寻找相关数据.
uuid是一组用来识别特定事物的16进位号码,通常是用Microsoft的GUID来实作,这组号码是唯一的,是用来程序.在manifest/目录放好icon文件,<icon>卷标指定好该程序的icon文件名,u3选单会自己抓到路径并显示图标.
< vender>卷标说明软件厂商,url是其内可设定的属性值,<description>卷标则是叙述说明,可填可不填.最重要的卷 标是<acti>里面的子元素卷标,<appStart>是用来说明程序执行的所在路径,这里一定要对,否则程序就不能执行, <appStop>及<hostCleanup>则是当按下随身碟u3选单里的"Eject"时,u3会结束还在执行中的程序, 以便安全地退出.
PS:但有些自己制作的软件,可能不能完全退出,会产生错误讯息.
u3p程序安装完后的会将data/再产生一份并copy至压缩档外,目的是用来将一些会修改到的档案,如ini等能够储存.
device/的作用目前我只知可以放hlp,chm等档档.
data/跟device/因还需在manifest.u3i中输入另外语法,才能让程序找到相关档案位置,所以如果为了方便的话,全部档案copy到Host/也可以.不过这样只是力求可以执行,许多情况还没有考虑到.
示范PieTTY封装成u3p档案
01. http://www.eure.ca/
请Download PackageFactory,如图所示,该软件作用为封装成U3P格式,属于非官方的程序故未对封装后的U3P做最佳化,但已属堪用地步,安装很简单,点两下开始安装,按next即可,相信应该不用教这个吧!
02.按两下执行PackageFactory,然后按 Drop EXE Here or Click to Add
03.寻找PieTTY执行文件位置.
04.按Advanced Mode...
05.点Host Folder,再点Add File...
06.按Shift将剩余的档案选起来.
07.按Wizard Mode...
08.按中间大大的"Create!"按钮.
09.选择档案的储存位置.
u3p安装步骤
01.请按照如图步骤.
02.找到PieTTY.u3p档案位置.
03.按Next.
04.安装完成后,按Done.
05.执行看看.
06.可以执行.
后记:
如 果打开packagefactory封装的PieTTY.u3p,你会发现执行档等档通通都放在Data/底下,然后检查安装后的容量,你会发现多了一 倍,这时你应该知道原因吧!因为PieTTY.u3p压缩档内的data/又被Copy出来一次.如何解决?将u3p扩展名更名成zip,然后将所有档案 通通Copy到Host/下,接着将<appStart>内的App_Data_Path属性换成HOST_EXEC_PATH,再更名回 u3p扩展名.
u3p其实是一个zip压缩档,更名成zip扩展名后用winrar开启后会依据程序不同发现如下目录结构,
data/
device/
Host/
manifest/
其 中Host/是程序执行文件所在的位置并放置相关的dll档案,manifest/目录里有两个档案,manifest.u3i跟xxxxxx.ico, manifest.u3i是用xml语法来描述程序版本,厂商,执行路径等等,xxxxxx.ico是出现在u3选单里的图示,
一个manifest.u3i范例
<u3manifest version="1.0">
<application uuid="12345678-1234-1234-1234-123456789abc" version="x.x.x.x">
<icon>xxxxxx.ico</icon>
<name>xxxxxx xxxxxx</name>
<vendor url=" http://www.xxxxxx.com/ ">xxxxxx</vendor>
<description> [U3 build by Eure.ca]</description>
<opti>
<minFreeSpace>x.0</minFreeSpace>
</opti>
<i18n></i18n>
</application>
<acti>
<appStart cmd="%U3_HOST_EXEC_PATH%/xxxxxx.exe"></appStart>
<appStop cmd="%U3_HOST_EXEC_PATH%/appstop.exe"> -t -s xxxxxx</appStop>
<hostCleanUp cmd="%U3_HOST_EXEC_PATH%/appstop.exe"> -t -s xxxxxx</hostCleanUp>
</acti>
</u3manifest>
以下说明几个标签意义,略过没提有兴趣的,请自行寻找相关数据.
uuid是一组用来识别特定事物的16进位号码,通常是用Microsoft的GUID来实作,这组号码是唯一的,是用来程序.在manifest/目录放好icon文件,<icon>卷标指定好该程序的icon文件名,u3选单会自己抓到路径并显示图标.
< vender>卷标说明软件厂商,url是其内可设定的属性值,<description>卷标则是叙述说明,可填可不填.最重要的卷 标是<acti>里面的子元素卷标,<appStart>是用来说明程序执行的所在路径,这里一定要对,否则程序就不能执行, <appStop>及<hostCleanup>则是当按下随身碟u3选单里的"Eject"时,u3会结束还在执行中的程序, 以便安全地退出.
PS:但有些自己制作的软件,可能不能完全退出,会产生错误讯息.
u3p程序安装完后的会将data/再产生一份并copy至压缩档外,目的是用来将一些会修改到的档案,如ini等能够储存.
device/的作用目前我只知可以放hlp,chm等档档.
data/跟device/因还需在manifest.u3i中输入另外语法,才能让程序找到相关档案位置,所以如果为了方便的话,全部档案copy到Host/也可以.不过这样只是力求可以执行,许多情况还没有考虑到.
示范PieTTY封装成u3p档案
01. http://www.eure.ca/
请Download PackageFactory,如图所示,该软件作用为封装成U3P格式,属于非官方的程序故未对封装后的U3P做最佳化,但已属堪用地步,安装很简单,点两下开始安装,按next即可,相信应该不用教这个吧!
02.按两下执行PackageFactory,然后按 Drop EXE Here or Click to Add
03.寻找PieTTY执行文件位置.
04.按Advanced Mode...
05.点Host Folder,再点Add File...
06.按Shift将剩余的档案选起来.
07.按Wizard Mode...
08.按中间大大的"Create!"按钮.
09.选择档案的储存位置.
u3p安装步骤
01.请按照如图步骤.
02.找到PieTTY.u3p档案位置.
03.按Next.
04.安装完成后,按Done.
05.执行看看.
06.可以执行.
后记:
如 果打开packagefactory封装的PieTTY.u3p,你会发现执行档等档通通都放在Data/底下,然后检查安装后的容量,你会发现多了一 倍,这时你应该知道原因吧!因为PieTTY.u3p压缩档内的data/又被Copy出来一次.如何解决?将u3p扩展名更名成zip,然后将所有档案 通通Copy到Host/下,接着将<appStart>内的App_Data_Path属性换成HOST_EXEC_PATH,再更名回 u3p扩展名.