|
本帖最后由 Linzeal 于 2017-7-23 15:48 编辑
不用传,不是什么特殊程序,我就是用RegistryWorkshop和BOOTICE来试验下这个单文件制作的测试版,在Win10x64系统下,单文件制作_x86.exe制作成功,而单文件制作_x64.exe制作的单文件打开没有运行程序。
关于第一点增加一个选项来是否允许7z、Winrar等软件右键打开,是我理解错了,我看到你博文介绍中有“4.采用保护模式,防止7z、Winrar等软件右键打开”,以为原本是可以用7z、Winrar等软件右键打开,只是你加了保护模式,所以就变成不能右键打开。因此,我才说希望你对此设置一个可选项,来让我们用户来选择是否开启保护模式。
第二点关于逻辑关系设置的不清晰,是因为我用这个测试新版第一次制作时,“强制覆盖”我取消了勾选,这时有提示说要去设置“解压路径”,我就设置了。但没注意到下面的“运行结束后删除释放出来的文件”的勾选是没取消的,就直接开始制作单文件了,做出来的单文件实际上是结束后就删除了的。那时我差点以为这个版本新增功能“强制覆盖”根本无效。所以,我估计,一些新手初用这个工具来制作单文件时,也会遇上这样的情况。最好的办法,就是自动化,“强制覆盖”取消了勾选时就将“解压路径”自动设置为程序名,同时将“运行结束后删除释放出来的文件”的勾选自动取消。
第三点关于希望“解压路径”根据“运行程序”选项中的程序名自动改变,是因为我在制作单文件时,有时要制作多个,比如前面刚把RegistryWorkshop文件夹拖进来制作,我在“解压路径”设置为用程序名,制作好后,下一个把BOOTICE文件夹拖进来准备制作x86和x64二合一单文件,但这时候如果不点击“解压路径”设置一下,就变成释放到%Random%了。因此,我才说,希望“解压路径”沿用上一次的设定,是%Random%的就一直保持%Random%;是设置为用程序名的,当文件夹拖进来的时候就自动更新程序名。
其实,第二点和第三点,都只是小事,不是问题,充其量只是优化一点操作,多一些自动化而已。第一点才是大事,这跟我单文件的使用情况有关系。我并不关注是否真的纯绿色,是否不写注册表什么的,只关注是否与用户数据相关,一般分为两种:
一种是用户数据与程序所在目录弱相关的,如BOOTICE等大多数工具,要么根本没什么用户数据文件,要么用户数据文件自动放在系统Document或Roaming下与单文件运行时会释放文件到哪关系不大,要么用户数据文件在程序目录下但配置好了可千年不改的可以随同程序打包到单文件中。这些就很简单,单文件运行时释放到哪都行,都可以使用良好。制作好的单文件,不管是本机自用,还是带出去给他人电脑进行维护,都没问题。除了程序版本更新之外,几乎不用对制作好的单文件进行更新维护。
另一种就是用户数据与程序所在目录强相关的,也是最麻烦的,就是用户数据文件在程序目录下,且经常会改变并希望能保留下来的。比如一些便捷版输入法,希望保留添加的用户字词表,以及其他一些时不时会更新重要用户数据的软件。这就必须在有重要用户数据改变时,在单文件退出之前从Temp中将全部文件提取做成新的单文件来替换掉旧的。这种情况,若是单文件能像WinRAR那样右键打开查看或解压,更新起来就比较方便了。
上面这是从用户数据相关来看,若从系统是否调用来看,又分为两种:
一种是与系统调用无关的,通过手动运行单文件来运行。没什么好说的。
另一种是与系统调用有关的,有的是注册鼠标右键,如WinRAR右键;有的是被设定为默认程序的,被外部程序调用的,如图片的打开默认程序等。原本这是相当麻烦的事,这些程序也不适合做成单文件,但现在有了你的传递参数,就好解决多了。
现在电脑性能已经好太多了,不像早些年的电脑打开单文件慢吞吞的,现在即便是把Chrome这样的大家伙制作成单文件来当默认浏览器,也是打开飞速,丝毫感觉不到比安装在硬盘的来的慢多少。因此,我计划把所有的用户程序都制作成单文件,整个Program Files里就不会有几百个子目录几千几万个零零散散的文件,而是整整齐齐的一个个单文件,非常好管理。这样就和Android的APK一样了,同样是压缩包形式,同样是解包释放程序文件到某路径,同样是用户数据与程序分离分隔。当然这期间,遇到的问题也就多了,总结起来就两个大方面:
1、单文件的制作和更新如何才能更简单、更快捷(最好能像WinRAR自解压那样右键打开,更新替换一下需要更新的文件就搞定,但WinRAR自解压做单文件太麻烦,连图标都要自己用工具取,更关键的是做好的单文件若更新后单文件的图标全没了变成WinRAR自解压的默认图标了,并且不能做32位/64位自适应的单文件);
2、单文件的被系统调用,但这个传递参数,有的可以,比如单文件Chrome做默认浏览器,但有的不行,老大可以详细说说吗?
|
|