VMware ThinApp详细使用教程
VMware ThinApp详细使用教 程
教程更新请访问
这个软件是一款虚拟环境部署软件,
现在常见的一些单文件版的软件都是用它来制作的。
例如:单文件版Microsoft Office,Photoshop,优化大师等软件, 此软件的好处为可以对一些安装软件进行封装,
从而省去了重做系统在从新安装软件的麻烦,而且运行是不会对 系统残留垃圾文件和注册
键值。有人说用WinRaR来制作来制作不一样吗,VMware ThinApp和WinRaR是两种概念,winrar需要把封装的程序全部释放到硬盘上才能运行,VMware ThinApp封装的程序不需释放到硬盘上即可运行。 网上贴的教程太过简单,我在这次重新完善一下教程
首先要装一个干净的操作系统可以用VMware Workstation来装 安装的系统不要用ghost集成版的,因为ghost集成版安装后集 成了一些常用软件,不利于安装制作环境捕捉。可以用官方原版 或ghost纯净版。
接下来把 VMware ThinApp软件解压到VMware Workstation
虚拟的系统里去放到C:\Program Files下即可。
为了避免制作安装软件时对系统造成环境的更改,可以在系统 里安装个还原软件例如:Returnil 影子系统,设为保护模式。 因为我们制作时不会单制作一个软件吧,装多了后就会都系统环境造成破坏, 不利于捕捉,所以要安个还原软件。
再进行软件的安装。
接下来把要制作安装的程序拷贝到虚拟机里去
我拿
硕思闪客之锤5.2破解版为例 把安装包:
Sothink SWF Quicker 5.2.exe flex_sdk_setup_3_4_0_9271_1.exe 拷到虚拟机里去了
运行Setup Capture.exe
点下一步
设置扫描盘符和注册表位置,一般不需要设,
虚拟机里就一个C盘,安装时到默认路径就行
点扫描
扫描完成后,最小化Setup Capture界面
开始安装要制作的安装程序
安装好后运行一次安装的程序并根据个人喜好设置好,
把检查更新的一些选项去掉
关闭安装的程序,切换到Setup Capture界面点扫面
扫描完成选择运行的主程序,把不需要的运行程序勾掉。 选择一个主文件作为数据包程序,填写文件名称,默认是 安装程序文件名。
点下一步进行沙盘存档位置配置
有3个选项值
第1个是存档放到“X:\Documents and Settings\当前用户\Application Data\Thinstall”
第2个是放到制作的程序运行同一目录下
第3个是自定义目录,支持系统环境通配符,例如:%Temp% 这个就代表系统临时文件夹,详细见下面系统环境通配符表
点击下一步选择运行模式有两个选项
第一个是Merged模式, 这个是允许更改保存的文件在对应的磁盘里可见,例如制作个Flash.swf保存到D:\我的作品
就会在D:\我的作品看到。 第二个是WriteCopy模式,这个是不允许更改保存的文件在对应的磁盘里可见,(注:我的文档是个除外)
例如制作个Flash.swf保存到D:\我的作品,不会在D:\我的作品看到,可以到沙盘存档位置下找到。 一般都是用第一个Merged模式
点击下一步
有3个选项
第一个选择项目生成路径,默认在“Setup Capture\Captures\软件名”文件夹下
第二个是生成MSI安装包(一般用不到)不要勾选
第三个是是否压缩,一定要勾可以缩小生成单文件程序的大小。
我这还有个诀窍把虚拟机的虚拟磁盘改成NTFS压缩,对于有些文件生成时还可以压一些。^_^
点击下一步生成项目文件
有两个按钮一个是编辑配置
一个是打开项目文件夹
点击打开项目文件夹
开始编辑配置文件
有几个项说明一下
生成的配置
; This file can be used to configure build and runtime options for
packages
; Lines that begin with a semicolon contain only comments and
do not have any effect
; For documentation and to obtain a complete list of options
available visit:
;
;
;
[Compression]
CompressionType=Fast
[Isolation]
DirectoryIsolationMode=Merged
[BuildOptions]
;-------- MSI Parameters ----------
;Enable MSIFilename if you want to generate a Windows
Installer package.
;MSIFilename=硕思闪客之锤.msi
;MSIManufacturer=Microsoft
;MSIProductVersion=1.0
;MSIDefaultInstallAllUsers=1
;MSIRequireElevatedPrivileges=1
;MSIInstallDirectory=硕思闪客之锤 (VMware ThinApp)
;MSIProductCode={CD2E32F8-0C16-76E3-E9B6-
FD269A4BDA6A}
;MSIUpgradeCode={A76C592A-D578-AA06-0392-
96C3094BC0BC}
;MSIUseCabs=1
;-------- AppSync Parameters ----------
;AppSyncURL=
;AppSyncUpdateFrequency=1d
;AppSyncExpirePeriod=30d
;AppSyncWarningPeriod=5d
;AppSyncWarningFrequency=1d
;AppSyncWarningMessage=This application will become unavailable for use in %%remaining_days%% day(s) if it cannot contact its update server. Check your network connection to ensure uninterrupted service.
;AppSyncExpireMessage=This application has been unable to contact its update server for %expire_days% day(s), so it is unavailable for use. Check your network connection and try again.
;AppSyncUpdatedMessage=
;AppSyncClearSandboxOnUpdate=0
;-------- Parameters used only during Setup Capture ----------
SandboxPath=%Temp%
AccessDeniedMsg=You are not currently authorized to run this application. Please contact your Administrator.
CapturedUsingVersion=4.0.4-204871
OutDir=bin
;-------- General Purpose Parameters ----------
SandboxName=SWFQuicker
InventoryName=SWFQuicker
;PermittedGroups=Administrators;Remote Desktop Users
;RemoveSandboxOnExit=1
;SandboxNetworkDrives=0
;SandboxRemovableDisk=0
;VirtualizeExternalOutOfProcessCOM=1
;OptionalAppLinks=%ProgramFilesDir%\Internet Explorer\iexplore.exe
;RequiredAppLinks=\\server\share\*.exe;c:\abs\path\file.exe
VirtualDrives=Drive=c, Serial=4c7cee6e, Type=FIXED; Drive=f, Serial=cd52b63a, Type=FIXED
;VirtualDrives=Drive=a, Serial=00000080, Type=REMOVABLE; Drive=c, Serial=4c7cee6e, Type=FIXED; Drive=d, Serial=4c7cee6e, Type=CDROM; Drive=f, Serial=cd52b63a, Type=FIXED
;VirtualComputerName=MICROSOF-1D5C57
AnsiCodePage=936
LocaleIdentifier=2052
; If you have problems running a 32 bit application under 64 bit
Windows, try enabling this line before building the project ;Wow64=0
[硕思闪客之锤.dat]
Source=%ProgramFilesDir%\SourceTec\Sothink SWF
Quicker\SWFQuicker.exe
ReadOnlyData=bin\Package.ro.tvr
Disabled=1
MetaDataContainerOnly=1
[硕思闪客之锤.exe]
ReadOnlyData=bin\Package.ro.tvr
Source=%ProgramFilesDir%\SourceTec\Sothink SWF
Quicker\SWFQuicker.exe
WorkingDirectory=%ProgramFilesDir%\SourceTec\Sothink SWF
Quicker
[SWFQuicker.exe]
Source=%ProgramFilesDir%\SourceTec\Sothink SWF
Quicker\SWFQuicker.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[uninst.exe]
Source=%ProgramFilesDir%\SourceTec\Sothink SWF
Quicker\uninst.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[cmd.exe]
Source=%SystemSystem%\cmd.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[regedit.exe]
Source=%SystemRoot%\regedit.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[iexplore.exe]
Source=%ProgramFilesDir%\Internet Explorer\iexplore.exe Shortcut=硕思闪客之锤.exe
Disabled=1
更改后的配置
[Compression]
CompressionType=Fast
[Isolation]
DirectoryIsolationMode=Merged
[BuildOptions]
SandboxPath=%Temp%
CachePath=%Temp%\SWFQuicker
AccessDeniedMsg=You are not currently authorized to run this
application. Please contact your Administrator.
CapturedUsingVersion=4.0.4-204871
OutDir=bin
SandboxName=SWFQuicker
InventoryName=SWFQuicker
RemoveSandboxOnExit=1
AnsiCodePage=936
LocaleIdentifier=2052
[硕思闪客之锤.exe]
ReadOnlyData=bin\Package.ro.tvr
Source=%ProgramFilesDir%\SourceTec\Sothink SWF
Quicker\SWFQuicker.exe
WorkingDirectory=%ProgramFilesDir%\SourceTec\Sothink SWF
Quicker
编辑后去掉了多余的编译文件例如
[SWFQuicker.exe]
Source=%ProgramFilesDir%\SourceTec\Sothink SWF Quicker\SWFQuicker.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[uninst.exe]
Source=%ProgramFilesDir%\SourceTec\Sothink SWF Quicker\uninst.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[cmd.exe]
Source=%SystemSystem%\cmd.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[regedit.exe]
Source=%SystemRoot%\regedit.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
[iexplore.exe]
Source=%ProgramFilesDir%\Internet Explorer\iexplore.exe
Shortcut=硕思闪客之锤.exe
Disabled=1
屏蔽了虚拟磁盘选项
原
VirtualDrives=Drive=c, Serial=4c7cee6e, Type=FIXED; Drive=f,
Serial=cd52b63a, Type=FIXED
更改后
;VirtualDrives=Drive=c, Serial=4c7cee6e, Type=FIXED; Drive=f,
Serial=cd52b63a, Type=FIXED
去掉这行或前面加个英文状态下";"就行了
开启了结束程序后清除沙盘档案文件
RemoveSandboxOnExit=1
这个根据个人喜好开启或关闭
加入一个临时链接执行文件储存目录的选项,
CachePath=自定义路径
CachePath=%Temp%\SWFQuicker这个就表示系统临时目录\SWFQuicker目录下 这个选项在配置生成是没有的需手动添加
(不加默认是X:\Documents and Settings\当前用户\Local Settings\Application Data\Thinstall\Cache目录下) 基本上动这几个选项就足够了
其它的我会陆续整理出来贴上
配置好后保存,删除项目目录下的一些垃圾文件例如:卸载程序,升级程序等来减小生成体积
点击
build.bat编译
会在项目文件夹下Bin目录里生成你所要的单文件
拷到系统里试一试吧
系统环境通配符表
重要提示4.0.4版的thinreg.exe在注册关联文件时路径有问题,只能把制作
的单文件放在盘符根下才能注册成功。
例如:用QQ旋风关联.torrent BT种子文件
cmd命令
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp. C:\Documents and Settings\admin>"D:\Program Files\ThinApp
Tool\thinreg.exe" "D:\Pr
ogram Files\ThinApp Tool\QQ旋风.exe"
运行不会关联成功
需改成
C:\Documents and Settings\admin>"D:\Program Files\ThinApp
\thinreg.exe" "D:\QQ旋风.exe" Tool
把QQ旋风.exe 放到D:根下才会成功
4.6版的thinreg.exe没有这个Bug,请使用4.6版的thinreg.exe来注册关联。
4.6版thinreg.exe下载我的网盘
小窍门:把要关联的单文件程序拖到thinreg.exe上即可实现上述关联cmd命令
初次接触这款软件的人会问都出4.6版了为什么不汉化4.6的,因为从4.5版开始,虽说支持windows7环境捕捉,但压缩率太差,做出来的文件太大,不信可以试试,呵呵。
提示:用VMware ThinApp 4.0.4版在xp环境制作出来的软件也可以在windows7里运行
如何去除生成文件版本信息里的许可信息
例:
ThinAppBuildDateTime 20110317 233401 ThinAppLicense QQ:105286641
ThinAppVersion 4.0.4-204871
不要用ResHacker,PE Explorer,OllyDbg等软件来去,会破坏执行程序链接文件
建议用Uedit32来去除
打开后查找ThinApp这个的Unicode字符串
在查找里输入:54 00 68 00 69 00 6E 00 41 00 70 00 70 00
找到了后把前头50 00 10 00 01 00
改成00 00 10 00 01 00 保存
就不会显示了在版本信息里去了
重要声明
有人说程序报毒其实是误报,原版就报我也没办法,我用的可牛扫描也报 原版也使用VMware ThinApp封包的我把原版文件从Setup Capture.exe中提取出来进行了汉化,
我就动了setup_capture.exe和tlink.exe两个文件,一个汉化,一个去提示。
原版图
扫描Setup Capture.exe报毒
我把原Setup Capture.exe解包提取出来文件扫描
我用的原版版本号为4.0.4-3614这是4.0.4最后一个版本,再高就是4.5版的
了
不信可以自己试试去,还是那句话怕有毒就别用了
我在这下的原版:用百度搜VMware ThinApp 4.0.4自己找一个下载也一样,只要是4.0.4.XXXX
版的boot_loader.exe都误报,
我的可牛本地查杀引擎不报毒,云查杀引擎报的。
补充几个实用的参数
FileTypes
注册文件关联
使用方法
FileTypes=文件扩展名
例如用Microsoft Office Word 2007.exe关联.docx.doc.dot文件 [Microsoft Office Word 2007.exe] ReadOnlyData=bin\Package.ro.tvr Source=%ProgramFilesDir%\Microsoft Office\OFFICE12\WINWORD.EXE
FileTypes=.docx.doc.dot
打包制作完后运行thinreg.exe注册文件关联命令即可,命令使用方法上面提到了,就不说了。
ExternalDLLs
设置一个虚拟系统的DLL在运行时加载到真实系统里。
这句话有人不大理解,我说明一下,用VMware ThinApp制作封包的文件运行时会以沙盘虚拟系统环境的形式来运行
(不懂沙盘什么意思的百度去),封包里的DLL文件不会注册到真实系统里去,和真实系统隔绝了,有一些特殊的软
件的DLL必需要注册到真实系统里才管用,所以就需要ExternalDLLs这个参数来强制加载注册到真实系统里去,与在
真实系统里使用regsvr32 /s命令注册DLL是一样的。
使用方法
[BuildOptions]
ExternalDLLs=DLL文件名
实例注册inject.dll;injectme2.dll到真实系统
[BuildOptions]
ExternalDLLs=inject.dll;injectme2.dll
ExternalCOMObjects
设置一个虚拟系统的COM接口函数在运行时创建到真实系统里。 使用方法
[BuildOptions]
ExternalCOMObjects=COM接口函数
实例{8BC3F05E-D86B-11D0-A075-00C04FB68820};{7D096C5F-AC08-4F1F-BEB7-
5C22C517CE39}
两个COM接口函数在真实系统里运行
[BuildOptions]
ExternalCOMObjects={8BC3F05E-D86B-11D0-A075-00C04FB68820};{7D096C5F-
AC08-4F1F-BEB7-5C22C517CE39}
ForcedVirtualLoadPaths
强制关联一个虚拟的系统环境的DLL到真实系统环境DLL中去。
举例说明:例如我在机子里装里Microsoft Office Outlook 2007,
我又制作了一个单文件的Microsoft Office Outlook 2007 在我点击软件或网页中的发送邮件时会触发我机子里装里Microsoft Office Outlook 2007,
而不会触发我制作的单文件的Microsoft Office Outlook 2007,因为在触发这个事件时mso.dll会调用
真实系统里的envelope.dll,而不会调用单文件里的Microsoft Office Outlook 2007的envelope.dll,
使用这个参数后就会强制触发mso.dll调用单文件里的Microsoft Office Outlook 2007的envelope.dll。
使用方法
[BuildOptions]
ForcedVirtualLoadPaths=点文件包里的DLL文件路径
实例
[BuildOptions]
ForcedVirtualLoadPaths=%ProgramFilesDir%\Microsoft
Office\Office12\envelope.dll
NotificationDLLs
进行第三方DLL的调用
就是单文件运行时真实系统里必须有指定的DLL如果没有则会运行错误。 使用方法
[BuildOptions]
NotificationDLLs=DLL文件名
实例单文件运行时真实系统里必须有First.dll;Second.dll如果没有则会运行错误。
[BuildOptions]
NotificationDLLs=First.dll;Second.dll
ObjectTypes
创建虚拟环境中的COM对象类型到真实环境中去
使用方法
ObjectTypes=COM对象类型
实例创建Microsoft Office Excel 2007.exe单文件的
Excel.Application;Excel.Application.12;Excel.Chart;Excel.Macrosheet;E
xcel.Sheet; Excel.Workspace COM对象类型到真实环境中去。 [Microsoft Office Excel 2007.exe]
ObjectTypes=Excel.Application;Excel.Application.12;Excel.Chart;Excel.
Macrosheet;Excel.Sheet; Excel.Workspace
SandboxCOMObjects
真实系统环境可以调用虚拟系统环境中的COM对象
使用方法
[BuildOptions]
SandboxCOMObjects=0或1
实例真实系统环境可以调用虚拟系统环境中的COM对象 SandboxCOMObjects=0
VirtualizeExternalOutOfProcessCOM
设置进程外的COM对象是否可以在虚拟环境中运行 使用方法
[BuildOptions]
VirtualizeExternalOutOfProcessCOM=0或1 实例进程外的COM对象是可以在虚拟环境中运行 VirtualizeExternalOutOfProcessCOM=0
CachePath
设置单文件包中临时可执行文件存放路径,上面提到过 CachePath=路径
BlockSize
设置压缩块数大小,越大压缩率越高
BlockSize=64k|128k|256k|512k
本人亲测一般程序还是不使用BlockSize参数,默认最好,图片数据比较多的
程序可以使用高压缩率。
还有一些参数因字数要超了贴不下了先看英文帮助吧,我有空再另开新帖整理
一下各参数实际应用.
4.6.1版在线帮助地址 4.0.4版帮助文档下载 PDF 4.6.1版帮助文档下载 PDF
VMware ThinApp 4.0.4.3614 汉化去提示版下载
去除了封包文件后的右下角提示,汉化了界面并集成了授权文件和注册机。
4.0.4.3614支持系统路径通配符,压缩率也要比4.5以上的版本好的多。
4.0.4版下载
#
Setup_Capture.rar
4.6.1版下载,去掉右下角提示了,没汉化,会用4.0.4版就会用这个版。4.6.1版压缩率不敢恭维,这个毛病从4.5版就有了.
#
VMware_ThinApp_4.6.7z
来自: