近期 PortableApps 在 PortableAppC 的新发展

关注本站的朋友可能发现,近期推出的新软件少了,不过,这不代表俺偷懒了。让便携软件更稳定、可靠、对用户友好,是我一直在努力的目标,以下简要谈谈近期 PortableApps.com 格式便携软件在本站的最新发展。

延迟关机机制

大家知道,便携软件一定要正常退出,这是因为在软件运行时,启动器一直在后台默默等待,当主程序结束后,执行收尾工作。收尾工作包括将用户数据保存到Data目录,清除软件在系统中的污染等等,非正常退出不但会在系统留下垃圾,更可能造成用户数据丢失的风险。

因此,当便携软件启动时,检测到上次运行未正常退出,就会弹出对话框警告用户,并执行上次运行的收尾工作。如图:

我想,这个对话框是不能取消的。因为这告诉用户,非正常退出是不好的,在下次退出便携软件时,用户会格外小心。这总比丢失了数据而莫名其妙要好。

但是,许多用户(包括我自己)把便携软件作为日常使用,甚至加入开机启动组,那么每次关机前,都要关闭每一个便携软件,否则下次启动时便会弹出对话框,未免过于繁琐与迂腐。

延迟关机机制解决了这个问题,现在每个便携软件启动器都会向 Windows 发送一个延迟关机的信号。在关机过程中,软件主程序会被直接结束,而启动器会获得一定延迟时间,在大多数情况下,都足以完成收尾工作。

在 Vista 以上系统中,用户基本不会感到此延迟,假如延迟持续到了用户足以察觉的情况,则会看到这样一个画面:

在 Windows XP 中,则不会自动关闭程序(因为XP不支持延迟关机API),而是会显示一个对话框:

用户手动结束软件主程序后便会消失。

我会慢慢将此特性加入所有更新的便携软件中,这样,关机便不会导致便携软件的非正常退出了。

更好的内存管理

虽然便携软件的启动器在软件运行的时候几乎不占用任何系统资源,但还是有朋友对它的内存占用耿耿于怀。额外说一点,有朋友认为便携软件的启动器会监视软件行为,其实完全没有那么高级。在软件运行的时候,启动器仅仅通过一个 WaitForSingleObject 的 API 函数等待主程序结束,没有任何计算或监视行为,占用的CPU资源可忽略不计。不过,内存占用确实有可改进的空间。

现在,当启动器完成启动工作以后,会释放不需要的内存,最大程度地减少内存占用:

解放前

解放后

在不同的系统效果不一,在Vista以上系统的效果较XP为好,不过总比完全不做要好。

AdditionalParameters 参数

近期更新的便携软件,在配置文件(启动器同目录的ini文件)中,统一加入了AdditionalParameters设置项。AdditionalParameters,即额外传递给软件主程序(不是启动器)的启动参数,在某些情况下,可避免用户为了实现某些目的,制造启动器的启动器……

例如,在 CCleaner 的配置文件 Piriform4in1PackPortable.ini 中设置:

那么,CCleanerPortable.exe 就会将 /AUTO 这个参数传递给 CCleaner.exe ,等于运行 CCleaner.exe /AUTO ,实现自动清理,自动退出。

INI 文件中设定的启动参数是放置在传递给便携软件启动器的参数之前的,例如,在酷狗音乐的配置文件中设置 AdditionalParameters=/OPEN ,那么运行 KuGouPortable.exe D:\1.mp3 等于运行 KuGou.exe /OPEN D:\1.mp3  ,实现自动播放。

关于注册表与文件备份、还原的稳定性改进

为了不做傻事,备份中的每一项失败都会被记录在案,以免恢复时删除不该删除的文件。

注册表的备份统一放到 HKCU\Software\PortableAppC-RegistryBackup 中,文件、目录的备份一律以 PortableAppC 为后缀,以免重复备份。

暂时就说这么多。另外,我觉得前天发布的 Piriform 四合一包内的 Updater 不错,如果每个软件都带这么一个更新程序,那么我一年不更新,大家的软件也能保持最新了。但是假如大家都不需要来我的网站了,下面这个东西怎么办呢:

《近期 PortableApps 在 PortableAppC 的新发展》目前有 62 个评论。

  1. 贵站的软件支不支持自动更新的?我用LiberKey和Portableapps都支持更新提示并自动下载安装更新的。

  2. 延迟关机机制在NSIS里怎么实现啊?

  3. 如果不支持在线更新,你每个版本都要制作一次,不要当心大家不上这个网站,只要是精品,就把没服用关注

  4. 提个建议,对于有64位版本的软件,能不能再制作一个64位便携版?毕竟64位是未来的趋势。

  5. 太喜欢这个网站的软件了 应该受到资助 做大做强

  6. 喜欢这里的很多软件,做到便携版确实不容易,如果稳定的话,不更新也无妨。

  7. 谢谢博主费心了。。。

  8. 喜欢这里的很多很多软件。但少了上网必备的浏览器。

    • PortableApps.com 和 PortableAppZ 制作了不少浏览器。
      David 基本上不会制作PortableApps.com 或 PortableAppZ 已经有了的软件。

  9. 有幸发现次站,版主的便携软件是尔等软件洁癖的喜爱哈,版主不要笑啊,俺就是
    另..版主的软件在病毒防沾染是不是比一般安装软件要好?
    支持便携,顶个哈

  10. 真的还可以啊

我要留言:

您的大名(必填):

您的邮箱(必填,不会公开):

您的网站(选填):

您的评论: