關於sidebar的一點研究

2021-04-15 17:12:48 字數 3134 閱讀 2217

關於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:

//根[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"

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)不再起作用;

關於Azure Storage 的一點研究

關於azure storage 的介紹和用c 去使用blob storage,可以參考下面這個官方資料 運維給了乙個uri https blob.core.chinacloudapi.cn 乙個account name和乙個account key.在嘗試往uri上傳檔案時,發現報錯,提示找不到對應位...

研究方法的一點總結

1,如何找研究方向 研究點 我們從參加工作開始,就限定了乙個大概的領域 網際網路,移動通訊,機械工程等等。所以所謂的研究方向也就是在乙個限定的範圍內,尋找新的問題,或者對於某個問題尋找新的更好的方法。曾看過r.w.hamming寫的一篇文章 裡面談到,當開始動手做研究之前,要choosing the...

關於引用計數和GC的一點研究

由於服務端c 程式設計的記憶體管理的複雜性 和程式書寫的複雜性,一般推薦使用引用計數和gc,從效率上看引用計數的效率非常高,gc的效率比較低。這裡討論一下主流的引用計數和gc 詳細 見 雲計算引擎 一.引用計數 1.引用計數的兩個基本原則 1.1 保證引用計數的加和減成對使用。1.2 引用計數從0開...