2007-01-26

About OEM deployment of Vista Sidebar Gadget

Note: This artical is written in Chinese.


关于gadget的安装,目前总结有以下几种安装方式:

  1. 直接复制到用户目录下(%LOCALAPPDATA%\Microsoft\Windows Sidebar\Gadgets\),这种方式下,只有该用户可以看到该gadget。根据我的同事的试验,这种方式存在一个潜在的问题:如果安装程序请求了管理员权限,可能取得的用户目录将不是该用户的目录,而是该管理员的目录,这导致该用户无法看到该gadget。
  2. 打包成.gadget后,本地运行,会以对话框提示用户该gadget的来源和数字签名等信息,询问是否安装,这种方式的优点是,会直接安装到用户的运行列表中,而不像其他方式那样还需要用户自行加入sidebar,安装后的目录同第一种方式。
  3. 复制到共享gadget目录下(%ProgramFiles%\Windows Sidebar\Shared Gadgets),这种方式估计是微软指定的安放OEM所带gadget的方式,所有用户都可以看到gadget,但有两个缺点,一个是用户删除该gadget后,并没有真正删除该gadget,而是放入了SkipList中,该用户以后将无法看到该gadget,重新安装也没有用,只有关闭sidebar进程后修改配置文件才行但可到sidebar属性中选择“恢复Windows自带小工具”来恢复;另一个是用户没有共享gadget目录下的写权限,gadget程序的功能受到了一定限制(具体还需要更多测试)。

上述3种方式各有特点也各存在一些问题,我还会做进一步的测试,找到一个最佳方式。

1月28日更新:

可通过以下命令行指令修改权限:

icacls "%ProgramFiles%\Windows Sidebar\Shared Gadgets\MyGadget" /grant Users:(F)
icacls "%ProgramFiles%\Windows Sidebar\Shared Gadgets\MyGadget" /grant Users:(IO)(OI)(CI)(F)

注意,这需要你对MyGadget目录具有充分权限,例如使用管理员帐号操作。

1 comment:

Anonymous said...

You changed your background, too!!
Wooo...So BIG, your 'John Hax' is!!