您的位置:首页 > 其它

关于sidebar的一点研究

2008-03-12 13:52 295 查看
关于sidebar的一点研究
【摘要】

Vista中的sidebar也算是windows中的一个新东西,抽时间小研了一下,在这里做个小结。
研究的也不深,如有不正确的地方还请大家拍砖。

【全文】

一、 Gadget的实现说明
  Gadget是一种由SideBar这个程序显示在边栏或桌面上的Html页面,可以用脚本与CSS(层叠样式表)控制页面的行为与显示,并且SideBar本身提供了一组对象来支持Gadget的一些特有功能,如:文件访问、保存设置等。
1. Gadget主要组成文件说明
  有两个文件是必不可少的:
> gadget.xml:Gadget的XML清单文件,其文件名必须是gadget.xml;
> gadget.html:主页面文件,文件名可以任意,这个文件名设置在gadget.xml文件中;
  
  其他文件:
> flyout.htm:flyout页面文件,可以有多个,需要在脚本中指定文件名,文件名任意;
> settings.htm:设置页面,也是在脚本中指定的,文件名任意。
  
  还有其他文件,详见VistaSidebarTutorial.pdf中的说明。这些文件的存储位置必须在sidebar的安装路径或用户的应用程序数据路径中的相应路径下(请参见2.1安装路径),而且根目录的扩展名必须为.gadget。
2. Gadget主要属性与事件
有关界面显示的主要属性有:
> System.Gadget.settingsUI:指定设置页面文件,这个页面如果太大的话可能显示不正常,宽度最好在400以下。
> System.Gadget.Flyout.file:指定flyout页面文件,在打开flyout时为此属性赋值,然后通过设置System.Gadget.Flyout.show = true来打开flyout页面。

有关界面显示的主要事件有:
> System.Gadget.onShowSettings:打开设置页面前的发生;
> System.Gadget.onSettingsClosed:关闭设置页面后的发生;
> System.Gadget.onUndock:将Gadget拖出边栏时发生;
> System.Gadget.onDock:将Gadget拖回到边栏时发生;
> System.Gadget.onSettingsClosed:设置页面关闭后发生;
> System.Gadget.Flyout.onHide:关闭flyout页面后发生;
> System.Gadget.Flyout.onShow:打开flyout页面时发生;

以上事件需要在主页面的body的onload事件中指定。
> System.Gadget.onSettingsClosing:关闭设置页面前发生,此时可检查输入数据是否正确并保存设置。此事件在设置页面的onload事件中指定。

更详细的事件与属性请参考msdn:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sidebar/sidebar/reference/objects/systemcontact/city.asp
二、 插入ActiveX控件
ActiveX控件在Html页中直接打开时可能会有一些安全的提示,但在gadget中不会有任何提示,将ActiveX控件通过
<OBJECT ID="myActiveXControl" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"></OBJECT>这个标签嵌入到页面中。
可以在脚本中直接调用此控件开放的方法或访问开放的属性。
三、 安装Gadget
  Gadget的安装包其实就是一个zip包或cab包,只是扩展名为gadget,将写好的文件压缩成一个包后直接将扩展名.zip或.cab改为.gadget即可。双击这个以.gadget为扩展名的压缩包后会提示是否安装,Sidebar会将这个包解压缩到%USERPROFILE%/AppData/ Local/Microsoft/Windows Sidebar/Gadgets目录中。
四、 通过程序安装与卸载
  通过程序安装与卸载可以通过修改gadget的配置文件实现。
  
4.1安装位置:
> 用户:%USERPROFILE%/AppData/ Local/Microsoft/Windows Sidebar/Gadgets
> 所有用户:Sidebar安装路径/Gadgets

4.2配置文件:
在%USERPROFILE%/AppData/ Local/Microsoft/Windows Sidebar和Sidebar安装路径中都有一个settings.ini文件,这个文件记录着sidebar当前的gadget的显示信息与保存的配置信息,主要文件内容如下:

//根
[Root]
SettingsVersion="00.00.00.01"
SidebarShowState="Imploded"
SidebarDockedPartsOrder="0x3,0x4,0x2," //gadget的显示顺序
Section0="1"
SidebarAutoStart="true"
SidebarDockSide="2"
SidebarAlwaysOnTop="false"
SidebarDockMonitor="0"
SidebarDockedPartsPage1="1"
OneTimeRemoveGadgetMessageShown="true"
PickerPosX="192"
PickerPosY="160"
OneTimeExitMessageShown="true"
OneTimeCloseLastDockedMessageShown="true"
OneTimeHideMessageShown="true"

//当前显示的gadget的名称列表,它用一个数字表示,
//这个数字与上面的显示顺序是对应的。
Section1="2"
Section2="3"
Section3="4"

//每个gadget的状态与设置信息,每个[]为一个gadget的开始,
//其中的数字与上面的名称列表相对应
[Section 2]
PrivateSetting_GadgetName="D:%5CUsers%5Cddl%5CAppData%5CLocal%5CMicrosoft%5CWindows%20Sidebar%5CGadgets%5CPlatformAssist.gadget" //gadget安装目录名
PrivateSetting_Enabled="true" //是否有设置页面
//下面几行是设置页面中设置字段
userName=""
password=""
url=""
updateTime=""
//设置字段结束

PrivateSetting_GadgetTopmost="false" //是否在最顶端
PrivateSetting_SidebarDockedState="Not%20Docked" //停靠状态
PrivateSetting_GadgetDropLocationX="314" //在桌面上的位置X
PrivateSetting_GadgetDropLocationY="46" //在桌面上的位置Y

[Section 3]
PrivateSetting_GadgetName="D:%5CProgram%20Files%5CWindows%20Sidebar%5CGadgets%5CClock.Gadget"
PrivateSetting_Enabled="true"
PrivateSetting_SidebarDockedState="Docked"
PrivateSetting_GadgetTopmost="false"
[Section 4]
PrivateSetting_GadgetName="D:%5CProgram%20Files%5CWindows%20Sidebar%5CGadgets%5CCPU.Gadget"
PrivateSetting_Enabled="true"
PrivateSetting_SidebarDockedState="Docked"
PrivateSetting_GadgetTopmost="false"

说明:上面以//开始的文字均我后加的注释说明,在配置文件中不存在这些文字。

注意:这个文件在sidebar运行时是受保护的。
五、 其他说明:
页面中的脚本运行错误将得不到任何提示,出现错误后脚本将停止运行,而且alert(message)不再起作用;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: