搜索

2009年8月23日星期日

魔兽世界的 Windows Vista 兼容方案令人失望

《魔兽世界燃烧的远征》及其前作均不兼容 Windows Vista 系统,如果你和我一样使用了大半年的“兼容 SP2 模式”,那么我有一个好消息,一个坏消息告诉你:
  • 好消息:《巫妖王之怒》支持 Windows Vista。
  • 坏消息:《巫妖王之怒》支持 Windows Vista 的方式不安全。
我们的从头说起,话说为什么 Vista 不兼容《魔兽世界》的前作呢?因为微软在 Vista 中引入了更严格的安全机制,具体来说,影响到我们现在谈
论的这个问题的特性是在“程序”类文件夹(典型的:c:\program files)中限制“写”权限。

以往编写的软件习惯于这样工作:
  1. 由用户选择一个安装路径,创建一个文件夹;
  2. 运行时调用这个文件夹下的程序,运行时产生的状态信息、衍生文档都保存在这个文件夹或者其子文件夹下;
  3. 这就会导致程序会随时要求读写自己的安装文件夹。
而 现在 Vista 说,任何程序只能读取自己的程序文件夹,而不能在这个文件夹内写入(记得你安装的时候有个系统管理员权限提示吗?)。这样做的好处是,任何涉及可执行文件 的操作都会要求管理员权限,并有系统提示,如果用户觉得不妥,可以直接拒绝,这样可以减少病毒的行为空间。

那么程序运行时的动态信息放到哪里呢?用户的文档文件夹。这样只有用户自己可以访问自己的信息,而且便于备份软件的配置信息。

一句话,微软要求的其实是“程序”和“程序信息”的分离

通常符合 Vista 规范的软件都会在“程序”文件夹保存程序文件,而在当前用户的文档文件夹保存状态信息。而《巫妖王之怒》给了我们一个“全新”的解决方案:

把程序和程序信息都保存到“文档”文件夹,而且是“公共文档”文件夹!这样做的恶果至少有2个:
  • 如果病毒感染《巫妖王之怒》的可执行程序,我们收不到任何系统提示;
  • 如果我们需要在局域网共享文档,那么《巫妖王之怒》的程序将被作为共享内容。
而暴雪这么做的唯一理由是:这样可以把 XP 系统下的代码原样沿用。

我个人希望暴雪能够正视这个问题,不要以牺牲玩家系统安全性为代价,减少自己的工作量。

没有评论:

发表评论