除此之外,还有没有其他更好的解决方法呢?
我们都知道,在Windows Vista中,除系统级的共享Gadgets外,其他与Sidebar与Gadgets有关的设置均保存在用户的个人文件夹中,因此,只要让这些设置能够在多台Windows Vista客户机间能够共用或漫游,便可实现共用Gadgets的目的。
这需要几个步骤来操作:首先,需要将有关的Gadgets运行文件与设置拷贝到U盘中;然后,修改Gadgets与目录有关的参数,让其能够在膝脱离原始安装路径的条件下运行等等。下面我们具体介绍如何通过U盘来实现在多台Windows Vista客户机间共用Gadgets的方法,以帮助用户打造自己的“随身”Gadgets。
将已安装的Gadgets拷贝到U盘
在Windows Vista的默认设置中,用户的Sidebar设置与安装的Gadgets被保存在“%userprofile% \appdata \local \microsoft \windows sidebar”文件夹中,系统公用的Gadgets则保存于“%programfiles% \windows sidebar \shared gadgets”。(不会不清楚“%userprofile%\”与“%programfiles%”的含义吧? 实在不行的话可以在命令窗口中运行“set”查看相关环境参数的设置。)
插入U盘,此处假设U盘在Windows Vista中的盘符为“E:”,创建一个用于保存Sidebar与Gadgets文件、设置的目录“sblocal”;
将“%userprofile% \appdata \local \microsoft \windows sidebar”文件夹拷贝到e:\sblocal下,拷贝完成后即可看到设置文件路径为“ e:\sblocal\setting.ini ”,而所有的用户Gadgets则保存在“ e:\sblocal\gadgets”目录中;
如果希望将系统共享的Gadgets也可在多台Windows vista PC中共用,可按同样的方法将 “%programfiles% \windows sidebar \shared gadgets” 文件夹中的内容拷贝到“ e:\sblocal\gadgets” (注意目录,不要拷错了)。
编辑配置文件让Gadgets可在不同环境下运行
单纯地将Gadgets文件拷贝到U盘上并不能使Gadgets在脱离原始安装环境后能够使用,因为其运行依赖于原始的安装目录,如“%userprofile%\ appdata \local \microsoft \windows sidebar”,我们还需要将相关的路径修改到U盘上,这样才能使其可以在U盘上单独运行。
使用记事本或其他文本编辑器打开“ e:\sblocal\settings.ini ”文件;
可以看到,在settings.ini中针对每个Gadgets都有一项名为 “PrivateSetting_GadgetName” 的参数,其值即为Gadgets运行中所需文件的保存位置,比如说,对于常用的计算器小配件,该参数项即为类似如下的格式:
PrivateSetting_GadgetName=“C:%5CUsers%5Chighdiy %5CAppData%5CLocal%5CMicrosoft%5CWindows%20Sidebar%5C Gadgets%5Ccalculator%5B1%5D.gadget”
(注:该参数中“%5C”代表“\”,是”\”的十六进制代码,而“%5B1%5D”则代表“[1]”,更详细信息请参考ASCII码表。而“C:%5CUsers%5Chighdiy”则为上文中的“%userprofile%”,即对应于用户名为“highdiy”的情况。)
要让Gadgets能够在多台Windows Vista系统中运行,必须将这些与用户有关的路径修改为通用路径。Windows Vista提供了一个环境变量来实现这一点:GADGETS_USER,它可以告诉Sidebar去哪些寻找用户安装的Gadgets。也即是说,我们需要将setting.ini中与用户目录有关的参量如上面例子中的 “C:%5CUsers %5Chighdiy %5CAppData %5CLocal %5CMicrosoft %5CWindows %20Sidebar %5CGadgets%5C” 替换为 “%GADGET_USER%”,以计算器小配件的例子来说,修改后即为:
PrivateSetting_GadgetName=“%GADGETS_USER% \calculator%5B1%5D.gadget”
同样地,对于系统默认安装的Gadget(从“%programfiles%\ windows sidebar \shared gadgets”中拷贝来的),则需将字符串 “C:%5CProgram%20Files” 修改为 “%PROGRAMFILES%”,这可避免因将Windows Vista安装不同分区而可能导致Sidebar加载时无法正确找到Gadgets文件的情况。
而对于那些虽然可以让多个用户使用但却是由系统管理员安装的Gadgets,因其他计算机上未必存在,则只能通过U盘来加载了,即与用户自安装的Gadgets采用类似的方法,将字符串 “C:%5C Program%20 Files %5CWindows %20Sidebar %5CShared %20Gadgets” 修改为 “%GADGETS_USER%” 。
创建Sidebar加载脚本
完成上面的修改后,便进入了最后一步,在这里我们需要设置环境变量,为Sidebar加载提供相关信息。其中,GADGETS_SETTINGS告知sidebar 配置文件“settings.ini”的位置,而 GADGETS_USER 则告知sidebar去哪些寻找待加载的Gadgets。
在 e:\sblocal目录下,创建一个名为sb.cmd的批处理文件,其内容如下:
pushd %~dp0
set GADGETS_SETTINGS=%~dp0
set GADGETS_USER=%~dp0\gadgets
start sidebar
popd
大功告成。
这样,在任何一台Windows Vista系统中插入U盘,在登录时关闭系统默认的Sidebar,然后运行“sblocal\sb.cmd” 脚本即可让我们的“随身”Gadgets运行了。
客观地说,通过这样的方式,可以大大方便Gadgets在Windows Vista中的使用,但从安全性的角度而言,这是不是个好的选择则存在疑问:假如不法用户通过U盘携带恶意Gadgets呢?这可以使其方便地加载任何其想要使用的Gadgets,难道Gadgets真的要成为未来流氓软件的主战场?