中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [学习笔记]WINRAR在制作绿色软件的运用
« [1] [2] »
作者:
标题: [学习笔记]WINRAR在制作绿色软件的运用 上一主题 | 下一主题
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『楼 主』:  [学习笔记]WINRAR在制作绿色软件的运用

WINRAR在制作绿色软件的运用
一.使用WINRAR制作单文件绿色软件
制作单文件绿色软件的方法有很多,如使用FILEPACKER等,这里介绍使用WINRAR怎样制作单文件绿色软件,之所有使用WINRAR制作,原因在于不会被杀毒软件查杀,运行后自动删除解压缩的文件,干净清爽,废话少说,LET'S GO!
选中要打包的所有文件-->鼠标右键"添加到压缩包"-->常规-->选中创建自解压-->高级-->自解压选项-->常规-->解压后运行中输入你要运行的程序名(注意使用相对路径)-->模式-->选中解压到临时文件夹,同时使用安静模式和覆盖模式[-->文字和图标-->图标中浏览选择刚才创建的ICO文件]-->确定-->确定
不过这里还得说明一点,很多小软件不需要注册控件,也不需要相应的注册表文件支持,所以制作时采用单文件绿色版比较好,有些文档等如WORD,EXCEL,ACCESS等也可以"制作"成EXE文件来执行(必须有相应的程序来执行),但是有些软件则需要注册表的支持或DLL注册才能运行,那么此时在"解压后运行"中不能直接输入要运行的程序名称,而必须使用批处理等方式在完成导入注册表或注册控件后再调用运行的程序即可.下面以创建Acrobat7单文件绿色版为例.
先在Acrobat7目录里创建一个GSETUP.BAT的批处理,然后在"解压后运行"里输入GSETUP.BAT即可,批处理内容如下:
@ECHO OFF
REM 1.设置运行环境
FOR /F "TOKENS=1,2 DELIMS=: " %%I IN ('CHCP') DO SET LAN=%%J
SET PATH=%CD%;%CD%\GTOOLS\;%PATH%
SET CPTMP=%CD%
CMDOW @ /DIS
ECHO SET CPTMP=%CPTMP%>CPTMP.BAT
BINSUB CPTMP.BAT \ \\ /I >NUL
CALL CPTMP.BAT
IF EXIST CPTMP.BAT DEL CPTMP.BAT /Q/F >NUL
CHCP %LAN% >NUL

REM 2.注册程序,因为7.X的AcroPDF.dll注册后浏览器不稳定,所以取消注册
TYPE GTOOLS\GREEN.SVR>GREEN.REG
BINSUB GREEN.REG "D:\\GREEN\\Adobe\\Acrobat 7.0" "%CPTMP%" /I >NUL
REGEDIT /S GREEN.REG >NUL
IF EXIST *.UBK DEL *.UBK /Q/F/S >NUL
IF EXIST GREEN.REG DEL GREEN.REG /Q/F/S >NUL
rem COPY /Y "Reader\Browser\nppdf32.dll" "%CommonProgramFiles%\..\Internet Explorer\PLUGINS\" >NUL
rem COPY /Y Reader\atl71.dll "%windir%\system32\" >NUL
rem regsvr32 /s "%CommonProgramFiles%\..\Internet Explorer\PLUGINS\nppdf32.dll" >NUL
rem regsvr32 /s ActiveX\AcroIEHelper.dll >NUL
rem regsvr32 /s ActiveX\AcroPDF.dll >NUL
rem regsvr32 /s ActiveX\pdfshell.dll >NUL

REM 3.启动并退出程序
START "" "%CPTMP%\Reader\AcroRd32.exe"
@ECHO OFF
EXIT

二.使用WINRAR制作绿色软件安装包
制作成单文件绿色软件固然很好,但是也有自身的缺陷,首先要求软件的自身体积要小,否则运行起来需要很长时间,尽管可以把程序精简再精简;其次有些必须需要注册表支持的软件使用这重方式后会在注册表中留有垃圾,尽管程序运行完成后产生的解压文件被干净清除掉;三是有些程序经常使用,制作单文件绿色软件显得有点画蛇添足,不如制作成绿色安装包,一次安装,一劳永逸.
与制作单文件绿色软件包不同的是,安装程序要求解压到一个固定的目录如D:\GREEN来执行,所以在解压选项-->常规中的解压路径中输入路径(支持WIN变量和自定义变量,如果不是在DOS下批量安装,这里解压目录最好再加上软件名称,如D:\GREEN\Acrobat7,后面将介绍到的制作批量安装包的方法的IPATH路径时则不必加,应为可以使用FOR的变量获取压缩包名为解压目录名),同时在模式中不要选中"解压到临时文件夹";另一个区别是制作绿色软件安装包要求在程序,桌面,快速启动栏等建立快解方式以便用户迅速调用,WINRAR本身具有这个功能,但必须事先在压缩包中设置好,不是很方便,所以采用了第三方软件SHOUTCAU,这个工具可以在批处理GSETUP.BAT中设置建立快解方式(注意与上面批处理的区别).

@ECHO OFF
REM 1.设置运行环境
FOR /F "TOKENS=1,2 DELIMS=: " %%I IN ('CHCP') DO SET LAN=%%J
SET PATH=%CD%;%CD%\GTOOLS\;%PATH%
SET CPTMP=%CD%
CMDOW @ /DIS
ECHO SET CPTMP=%CPTMP%>CPTMP.BAT
BINSUB CPTMP.BAT \ \\ /I >NUL
CALL CPTMP.BAT
IF EXIST CPTMP.BAT DEL CPTMP.BAT /Q/F >NUL
CHCP %LAN% >NUL

REM 2.注册程序,因为7.X的AcroPDF.dll注册后浏览器不稳定,所以取消注册
TYPE GTOOLS\GREEN.SVR>GREEN.REG
BINSUB GREEN.REG "D:\\GREEN\\Adobe\\Acrobat 7.0" "%CPTMP%" /I >NUL
REGEDIT /S GREEN.REG >NUL
IF EXIST *.UBK DEL *.UBK /Q/F/S >NUL
IF EXIST GREEN.REG DEL GREEN.REG /Q/F/S >NUL
rem COPY /Y "Reader\Browser\nppdf32.dll" "%CommonProgramFiles%\..\Internet Explorer\PLUGINS\" >NUL
rem COPY /Y Reader\atl71.dll "%windir%\system32\" >NUL
rem regsvr32 /s "%CommonProgramFiles%\..\Internet Explorer\PLUGINS\nppdf32.dll" >NUL
rem regsvr32 /s ActiveX\AcroIEHelper.dll >NUL
rem regsvr32 /s ActiveX\AcroPDF.dll >NUL
rem regsvr32 /s ActiveX\pdfshell.dll >NUL

REM 3.建立快捷方式
SC /F:"%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch\Acrobat Reader7.LNK" /A:C /T:"%CPTMP%\Reader\AcroRd32.exe" & CLS
IF "%LAN%"=="936" (
   IF NOT EXIST "%ALLUSERSPROFILE%\「开始」菜单\程序\[◎GREEN◎]" MD "%ALLUSERSPROFILE%\「开始」菜单\程序\[◎GREEN◎]"
   SC /F:"%ALLUSERSPROFILE%\「开始」菜单\程序\[◎GREEN◎]\Acrobat Reader7.LNK" /A:C /T:"%CPTMP%\Reader\AcroRd32.exe" & CLS
   SC /F:"%ALLUSERSPROFILE%\桌面\Acrobat Reader7.LNK" /A:C /T:"%CPTMP%\Reader\AcroRd32.exe" & CLS )
IF "%LAN%"=="950" (
   IF NOT EXIST "%ALLUSERSPROFILE%\「開始」菜單\程序\[◎GREEN◎]" MD "%ALLUSERSPROFILE%\「開始」菜單\程序\[◎GREEN◎]"
   SC /F:"%ALLUSERSPROFILE%\「開始」菜單\程序\[◎GREEN◎]\Acrobat Reader7.LNK" /A:C /T:"%CPTMP%\Reader\AcroRd32.exe" & CLS
   SC /F:"%ALLUSERSPROFILE%\桌面\Acrobat Reader7.LNK" /A:C /T:"%CPTMP%\Reader\AcroRd32.exe" & CLS)
IF "%LAN%"=="437" (
   IF NOT EXIST "%ALLUSERSPROFILE%\「START」MENU\PROGRAM" MD "%ALLUSERSPROFILE%\「START」MENU\PROGRAM"
   SC /F:"%ALLUSERSPROFILE%\「START」MENU\PROGRAM\[◎GREEN◎]\Acrobat Reader7.LNK" /A:C /T:"%CPTMP%\Reader\AcroRd32.exe" & CLS
   SC /F:"%ALLUSERSPROFILE%\DESKTOP\Acrobat Reader7.LNK" /A:C /T:"%CPTMP%\Reader\AcroRd32.exe" & CLS)
CLS

REM 3.启动并退出程序
START "" "%CPTMP%\Reader\AcroRd32.exe"
@ECHO OFF
EXIT

三.其他问题
1.如何更换自解压文件图标:
有两种更换方式,一是更换Default.sfx模扳中的默认图标,这个可以参考问题2的方式进行;二是使用自解压选项来设置,这里只介绍这个方法.
首先准备好32X32的256色ICO文件(如果不是32X32的256色ICO文件则打包后还是默认图标),如何制作ICO文件不在本文探讨之内,不过建议使用EXESCOPE直接在其他DLL,EXE文件中提取,很多这类文件都都包含有标准的32X32的256色ICO图标.
其次,自解压选项-->文本和图标中选择刚才创建的ICO文件即可.

2.如何美化自解压安装界面(对RAR命令行无效)
其实WINRAR也可以制作出看起来比较专业的安装程序,不过对于比较大型的复杂软件的安装则有点无能为力,因为常用做绿色软件的安装手段之一.这里先强调,要使用漂亮的安装界面,不应该使用安静模式,即需要先把自解压选项高级中的安静模式改为:全部显示,不然就看不到漂亮的效果.
下面就安装解压界面图片,解压的启动对话框的软件说明信息设置,软件许可界面设置分别讲述.
A.更换安装界面图片
首先使用UPX Shell脱掉Default.sfx的外衣(干什么?别紧张,不脱就没法干事!);其次使用EXESCOPE或ResHacker打开脱壳之后Default.sfx文件并修改位图下101下的图片为相应大小为93X302的BMP图片;最后把修改后的Default.sfx替换回去.OK,搞定了,简单吧?这样之后自解压界面图片就永远生根了,如果想换成其他图片,只有再修改了,当然要临时更换一个图片那么就可以参考问题一的步骤进行,WINRAR本身也提供了更换自解压界面图片的功能.另外说明一点,使用这个方法也可以更换自解压文件的图标.

B.设置软件许可说明
软件安装可以设置许可说明,这样让用户更多的了解软件许可等版权问题.方法很简单,自解压选项-->文本和图标,说明内容同样可以从需要压缩的文本文件README中提取.

C.设置启动对话框的软件说明信息
在安装软件的过程中,为了增强用户对软件信息和安装使用说明的了解,可以设置说明信息,方法也很简单,,自解压选项-->许可中设置,许可内容可以从需要压缩的文本文件中提取,这样比较方便.

3.如何使用WINRAR创建快捷方式
WINRAR提供了创建快捷方式的方法,但是具有局限性,一是必须在WINRAR打包时制作,不是很灵活,二是制作时不能在程序菜单中创建文件夹的方式来添加.其实制作WINRAR快捷方式很简单,在自解压选项高级中的创建快捷方式中按下面的命令输入即可:目标位置(P程序菜单,S开始菜单,D桌面,T启动), "目标程序", "目标文件夹(可以不要)", "描述文字", "快捷方式名称"
见如下面的例子:
S, "Reader\AcroRd32.exe", "", "我制作的多语言版本PDF阅读工具", "Acrobat7G"
P, "Reader\AcroRd32.exe", "", "我制作的多语言版本PDF阅读工具", "Acrobat7G"
D, "Reader\AcroRd32.exe", "", "我制作的多语言版本PDF阅读工具", "Acrobat7G"
T, "Reader\AcroRd32.exe", "", "我制作的多语言版本PDF阅读工具", "Acrobat7G"

4.如何使用RAR或WINRAR在命令行调用自解压参数
为了让WINRAR制作的软件既能在CMD模式下批量安装(批量安装可以参考我作的一键安装管理器),同时又可以在图形模式下安装,那么可以在CMD下使用相关的自解压参数来实现,常见的命令参数有:
PATH:解压目标路径,因为和CMD的PATH有冲突,所以可以使用CMD的SET重新定义一个IPATH来调用可以解决这个问题;SETUP:解压后运行,我这里固定为SETUP=GSETUP.BAT;Presetup:解压前运行指定程序,一般只用于更新安装时删除旧版程序时有用;Delete:解压前删除文件,如果要删除多个文件可以使用空格分开,这个参数一般也只用于更新安装;Shortcut:添加快捷方式,这个参数比较有用,可参考问题3的说明,如果有多个快捷方式,要多次使用此命令参数;TempMode:解压到临时文件夹,这个命令可以不用任何参数,也可以使用TempMode=[问题叙述][@窗口标题文本]来让用户决定是否继续安装,还需要注意的是这个命令如果是单文件绿色软件安装则可采用这个模式,同时还需要有Setup命令配合且不得使用path命令,同时该命令会自动使用安静模式,如果是非单文件绿色版本则不要使用这个程序,因为构成间接解压,可能需要很长时间;Silent:安静模式,如果为0则全部显示,为1则全部隐藏;Overwrite覆盖模式,如果为0则覆盖前询问,为1时全部覆盖,为2时跳过已有文件;Title:自解压标题,Text自解压窗体显示文本,支持HTML语言;IICON:定义自解压文件的图标,如把c:\myfiles文件夹的内容添加到setup.exe自解压文件中,使用图标c:\myicons\ver1.ico 作为自解压文件的图标则可以使用winrar a -sfx -iiconc:\myicons\ver1.ico setup.exe c:\myfiles命令;License:授权信息,格式为License=<许可协议对话框标题>{许可协议文本1 许可协议文本2}

5.如何使用注释来屏蔽脚本信息
在制作WINRAR压缩包的时候,我们前面使用的那些自解压的参数都会在压缩包的注释中显示,这样就暴露了压缩包的参数,如果你里面有危险的程序调用话,哈哈,那就被逮个正着,很多病毒程序和黑客程序就是使用屏蔽注释+自解压到临时文件运行程序来逃过我们的眼睛的.你可以在压缩程序时的注释中删除这些注释信息.利用好注释好有一个很好的用途,很多安装管理器都是单独建立一个同名的TXT文件来说明软件信息,其实可以利用在压缩程序时添加注释文件在批处理安装(见我的一键安装管理器)时使用RAR -C命令读取注释即可,需要说明的是写注释时不要使用:,不要分段分行,但可以使用HTML语言,否则获取的注释可能不全或无法获取注释.

[ Last edited by HUNRYBECKY on 2007-3-28 at 03:53 AM ]

   此帖被 +8 点积分      点击查看详情   
评分人:【 lxmxn 分数: +8  时间:2007-3-29 01:40


2007-3-28 03:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 2 楼』:  



  Quote:
......
首先准备好32X32的256色ICO文件(如果不是32X32的256色ICO文件则打包后还是默认图标),
......

现在的版本也可以用32x32以上的Alpha(透明通道)图标了

2007-3-28 04:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 3 楼』:  

以前接触软件汉化时做的 不过这里只用到资源替换。

可自定义窗口布局,所以图片不局限于93X302甚至可以反过来302×93

winrar自解压安装:




[ Last edited by baomaboy on 2007-3-28 at 05:29 AM ]

2007-3-28 04:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by zh159 at 2007-3-28 04:20:

现在的版本也可以用32x32以上的Alpha(透明通道)图标了

不错,我使用的3.6的,倒没有试过,谢谢提醒。

2007-3-28 06:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by baomaboy at 2007-3-28 04:38:
以前接触软件汉化时做的 不过这里只用到资源替换。

可自定义窗口布局,所以图片不局限于93X302甚至可以反过来302×93

winrar自解压安装:

[img]h ...

这个是使用WINRAR做的,很不错呀。我是做不出来,界面很好看,能不能发一个上来参考。应该使用了HTML语言代码吧

2007-3-28 06:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by HUNRYBECKY at 2007-3-28 06:09:



这个是使用WINRAR做的,很不错呀。我是做不出来,界面很好看,能不能发一个上来参考。应该使用了HTML语言代码吧

其实我以前发过此帖:
http://www.cn-dos.net/forum/view ... ghlight=%2Bbaomaboy
当时代码都用“新欢乐时光”的加密函数编码了,所以大概一天之后可能服务器杀毒杀掉了其中的VBS文件,再后来整个文件都被杀了,期间只有几个人下载了到,因为当时他们和我交流说很容易能得到源码的。

http://zhenlove.com.cn/cndos/fileup/files/LLKJ-PCOptimize.rar

考虑到可能还会被杀,加了密码
密码:000

还可以导入自定义图标


[ Last edited by baomaboy on 2007-3-28 at 07:52 AM ]

2007-3-28 07:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 7 楼』:  

谢谢baomaboy兄,研究了下你的WINRAR制作的EXE,的确使用了HTML代码,但是对Default.sfx模块文件我修改的不多,如何把自己的图片加到界面中呢?我使用的是EXESCOPE修改,加不了呀,不知道你使用的是什么软件修改这个模块的。

2007-3-28 08:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by HUNRYBECKY at 2007-3-28 08:12:
谢谢baomaboy兄,研究了下你的WINRAR制作的EXE,的确使用了HTML代码,但是对Default.sfx模块文件我修改的不多,如何把自己的图片加到界面中呢?我使用的 ...

还有ResourceHacker配合EXESCOPE再加上ps作图。

2007-3-28 10:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BWSkyer
中级用户

我是DOS学者


积分 367
发帖 180
注册 2006-5-14
来自 重庆
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by baomaboy at  10:36:



还有ResourceHacker配合EXESCOPE再加上ps作图。

赞,这两个software我都用过,如果有壳的话,Exescope好像就不可以修改了,至于ResouceHacker我倒不知道,这里是不是要考虑到脱壳阿?

2007-3-28 12:16
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (309843581)  编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 10 楼』:  

界面布局可以用eXeScope直接修改Default.SFX(我的3.61试过OK)

图片、图标可以在高级自解压选项-文本和图标中加载徽标图片、图标(支持界面大图标);文本和图标中的自解压窗口中显示的文本直接支持html脚本代码;许可栏的许可文本也支持html脚本代码;
而且WinRAR可以支持在桌面、开始菜单程序、启动项建立快捷方式,在解压路径中支持CMD的路径变量,如:%windir%\A:代表C:\WINDOWS\A

就是说WinRAR可以打包制作自动建立快捷图标的绿色软件安装包(删除时直接删除安装目录和快捷图标),自编一个卸载批处理就能自动卸载了

[ Last edited by zh159 on 2007-3-28 at 12:28 AM ]

2007-3-28 13:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 11 楼』:  

谢谢几个大哥的回答,问题基本解决,我使用的是EXESCOPE,所以无法把界面在重新布局(只能调整位置),使用RESOURCEHACKER就完全可以加入自己的控件了,实在是强。

另外,现在的WINRAR版本太多,DEFAULT.SFX模块修改了不知道能否通用,我现在主要用3.6的,现在最新出了3.7BETA5的版本,而且语言不同,不知道3.6的模块修改好后能否在3.7上使用。

2007-3-28 22:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 12 楼』:  

还有一个问题,问下ZH159和baomaboy兄,我做的BMP做的图怎么还是去不掉白色的背景呀,我使用了A通道的。

2007-3-29 00:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 13 楼』:  

透明BMP已经搞定,必须保存为32位的带A通道的才行。

2007-3-29 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 14 楼』:  


哎,看着好像是听天书似的,A通道是什么意思哇?


2007-3-29 01:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 15 楼』:  

A通道就是Alpha透明通道,不好意思,我简化了。

2007-3-29 02:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: