任務列延伸模組
從 Windows 7 開始,任務欄已大幅擴充,其指導原則是讓用戶盡可能快速且有效率地進行。 為此,使用者需要完成的應用程式視窗、檔案和命令,現在集中到單一任務欄按鈕,以合併先前散佈的資訊來源和控件。 用戶現在可以找到一般工作、最近和頻繁的檔案、警示、進度通知,以及個別檔或索引卷標的縮圖。
整合啟動和切換
從 Windows 7 任務列開始,快速啟動不再是個別工具列。 快速啟動通常包含的啟動器快捷方式現在會釘選到任務欄本身,並混用目前執行中應用程式的按鈕。 當使用者從釘選的啟動器快捷方式啟動應用程式時,只要應用程式正在執行,圖示就會轉換成應用程式的任務列按鈕。 當使用者關閉應用程式時,按鈕會還原為圖示。 不過,啟動器快捷方式和執行中應用程式的按鈕只是不同形式的 Windows 7 任務列按鈕。
根據預設,新安裝會釘選一小組應用程式。 除此之外,只有使用者可以釘選進一步的應用程式;不允許應用程式以程式設計方式釘選。
[快速啟動] 的 [顯示桌面] 功能現在位於任務列最右邊。 將滑鼠停留在此區域上會導致所有使用中的視窗變成透明,顯示桌面。 按兩下區域會執行將所有視窗最小化並切換至桌面的熟悉動作。
當應用程式執行時,其任務欄按鈕會成為存取下列所有功能的單一位置,每個功能都會詳細討論如下。
- 工作:常見的應用程式命令,即使應用程式未執行也一般。
- 目的地:最近和經常存取應用程式特定的檔案。
- 縮圖:視窗切換,包括個別索引標籤和檔的切換目標。
- 縮圖工具列:縮圖本身的基本應用程控。
- 進度列 和 圖示重疊:狀態通知。
任務列按鈕可以代表啟動器、單一應用程式視窗或群組。 稱為應用程式使用者模型標識碼的標識碼 (AppUserModelID) 會指派給每個群組。 您可以指定 AppUserModelID 來覆寫標準任務列群組,這可讓視窗在可能不會被視為這類群組時成為相同群組的成員。 群組的每個成員都會在縮圖飛出視窗中提供個別的預覽,當滑鼠停留在群組的任務列按鈕上時顯示。 請注意,群組本身仍然是選擇性的。
從 Windows 7 開始,任務欄按鈕現在可以由使用者透過拖放作業重新排列。
注意
[快速啟動] 資料夾 (FOLDERID_QuickLaunch) 仍可供回溯相容性使用,但不再有快速啟動UI。 不過,新的應用程式不應該要求在安裝期間將圖示新增至快速啟動。
如需詳細資訊,請參閱 應用程式使用者模型識別碼 (AppUserModelIDs)。
跳躍清單
使用者通常會啟動程式,目的是要存取檔或在程式內執行工作。 遊戲程式的使用者可能會想要以特定字元的形式進入已儲存的遊戲或啟動,而不是從頭重新啟動遊戲。 若要讓使用者更有效率地達到其最終目標,目的地清單 和與應用程式相關聯的常見 工作 附加至該應用程式的任務欄按鈕(以及對等 開始 功能表項)。 這是應用程式的快捷方式清單。 不論任務列按鈕處於啟動器狀態(應用程式未執行中),還是代表一或多個視窗,都可以使用跳躍清單。 以滑鼠右鍵按兩下任務列按鈕會顯示應用程式的 [跳躍清單],如下圖所示。
根據預設,標準跳躍清單包含兩個類別:最近的專案和釘選的專案,雖然因為 UI 中只會顯示含有內容的類別,因此第一次啟動時不會顯示這兩個類別。 一律存在應用程式啟動圖示(若要啟動更多應用程式實例)、從任務列釘選或取消釘選應用程式的選項,以及任何開啟視窗的 Close 命令。
目的地
最近 和 頻繁 類別會被視為包含目的地。 目的地通常是檔案、檔或 URL,是可以編輯、瀏覽、檢視等等的專案。 將目的地想成是一件事,而不是一個動作。 一般而言,目的地是Shell命名空間中的專案,由 IShellItem 或 IShellLink表示。 目的地清單的這些部分類似於 [開始] 功能表最近使用的檔案清單(預設不再顯示)和常用的應用程式清單,但它們專屬於應用程式,因此對使用者更精確且有用。 目的地清單中使用的結果是透過呼叫SHAddToRecentDocs 來計算。 請注意,當使用者從 Windows 檔案總管開啟檔案或使用通用檔案對話框開啟、儲存或建立檔案時,系統會自動為您呼叫 SHAddToRecentDocs,這會導致許多應用程式在目的地清單中顯示其最近的專案,而不需要對其採取任何動作。
啟動目的地就像使用 Open With 命令啟動項目一樣。 應用程式會隨著該目的地載入並可供使用而啟動。 目的地清單中的專案也可以從清單中拖曳至卸除目的地,例如電子郵件訊息。 藉由將這些專案集中在目的地清單中,它可讓使用者更快速地前往該位置,也就是目標。
當專案出現在目的地清單的 最近 類別中(或 經常 類別或 自定義類別,使用者可能會想要確保專案一律位於清單中以便快速存取。 若要達成此目的,他或她可以將該專案釘選到清單中,將專案新增至 釘選 類別。 當用戶主動使用目的地時,他或她想要輕鬆使用目的地,因此會將它釘選到應用程式的目的地清單。 使用者的工作完成後,他或她只會取消釘選專案。 此使用者控制件會讓清單保持整整且相關。
目的地清單可視為應用程式特定的 \[開始\] 功能表版本。 目的地清單不是快捷方式功能表。 目的地清單中的每個專案都可以以滑鼠右鍵按兩下自己的快捷方式選單。
蜜蜂屬
- IApplicationDestinations::RemoveDestination
- IApplicationDestinations::RemoveAllDestinations
- IApplicationDocumentLists::GetList
- SHAddToRecentDocs
任務
跳躍清單的另一個內建部分是 工作 類別。 雖然目的地是一件事,但工作是一個動作,在此情況下,它是應用程式特定的動作。 換句話說,目的地是名詞,而工作是動詞。 一般而言,工作會 IShellLink 專案,其中包含命令行自變數,指出應用程式可以觸發的特定功能。 同樣地,這個想法是集中處理與應用程式相關的資訊,就像實際一樣多。
應用程式會根據程式的功能定義工作,以及使用者預期會處理的主要工作。 工作應該是無內容的工作,因此應用程式不需要執行,才能運作。 它們也應該是一般使用者在應用程式中執行的統計最常見動作,例如撰寫電子郵件訊息或在郵件程式中開啟行事曆、在字處理器中建立新檔、在特定模式中啟動應用程式,或啟動其中一個子命令。 應用程式不應將功能表與標準使用者不需要的進階功能或一次性動作(例如註冊)雜亂無章。 請勿將工作用於促銷專案,例如升級或特殊供應專案。
強烈建議工作清單是靜態的。 不論應用程式的狀態或狀態為何,它都應該維持不變。 雖然可能會動態變更清單,但您應該考慮這可能會混淆不預期目的地清單的該部分變更的使用者。
蜜蜂屬
自定義跳躍清單
應用程式可以定義自己的類別,並在跳躍清單中新增或取代標準 最近 和 頻繁 類別。 應用程式可以根據應用程式的架構和預定用途,在這些自定義類別中控制自己的目的地。 下列螢幕快照顯示具有歷程記錄類別的自定義跳躍清單。
如果應用程式決定提供自定義類別,該應用程式會負責填入自定義類別。 類別內容仍應為使用者特定,並根據使用者歷程記錄、動作或兩者,但透過自定義類別,應用程式可以判斷想要追蹤的內容,以及它想要忽略的內容,或許是根據應用程式選項。 例如,音訊程式可能會選擇只包含最近播放的專輯,並忽略最近播放的個別曲目。
如果使用者已從清單中移除專案,而此清單一律為用戶選項,應用程式必須接受該專案。 應用程式也必須確定清單中的專案有效,或者如果已刪除,它們就會正常失敗。 您可以透過程式設計方式移除個別專案或清單的整個內容。
目的地清單中的項目數目上限取決於系統根據各種因素,例如顯示解析度和字型大小。 如果所有類別中的所有項目空間不足,則會從上到下截斷這些專案。
蜜蜂屬
縮圖工具列
若要在不讓使用者還原或啟動應用程式窗口的情況下,提供特定視窗按鍵命令的存取權,活動工具列控件可以內嵌在該視窗的縮圖預覽中。 例如,Windows 媒體播放機可能會提供標準媒體傳輸控件,例如播放、暫停、靜音和停止。 UI 會顯示縮圖正下方的這個工具列,如下圖所示,它並未涵蓋其任何部分。
此工具列只是熟悉的標準工具列通用控制件。 最多有七個按鈕。 每個按鈕的標識碼、影像、工具提示和狀態都會定義在 結構中,然後傳遞至任務欄。 應用程式可以根據其目前狀態,顯示、啟用、停用或隱藏縮圖工具列中的按鈕。
由於顯示縮圖的空間有限,而且要顯示的縮圖數目不一定,因此應用程式不保證有指定的工具列大小。 如果空間受到限制,工具列中的按鈕會從右至左截斷。 因此,當您設計工具列時,應該優先處理與按鈕相關聯的命令,並確保最重要且最不可能因為空間問題而卸除。
注意
當應用程式顯示視窗時,系統會建立其任務列按鈕。 當按鈕就緒時,任務欄會將 TaskbarButtonCreated 訊息傳送至視窗。 其值是藉由呼叫 registerWindowMessage計算(L(“TaskbarButtonCreated”))。 應用程式必須先接收該訊息,才能呼叫任何 ITaskbarList3 方法。
應用程式介面
- ITaskbarList3::ThumbBarAddButtons
- ITaskbarList3::ThumbBarSetImageList
- ITaskbarList3::ThumbBarUpdateButtons
- THUMBBUTTON
圖示重迭
應用程式可以透過其任務列按鈕,透過按鈕上的小型重疊顯示,將特定通知和狀態傳達給使用者。 這些重疊類似於用於快捷方式或安全性通知的現有重疊類型,顯示在按鈕右下角。 若要顯示重迭圖示,任務欄必須處於預設大型圖示模式,如下列螢幕快照所示。
圖示重疊可作為狀態的內容通知,並旨在否定個別通知區域狀態圖示將該資訊傳達給使用者的需求。 例如,Microsoft Outlook 中目前顯示在通知區域中的新郵件狀態,現在可以透過任務欄按鈕上的重疊來表示。 同樣地,您必須在開發週期中決定哪一種方法最適合您的應用程式。 重迭圖示旨在提供重要、長期狀態或通知,例如網路狀態、信使狀態或新郵件。 用戶不應該顯示不斷變更的重疊或動畫。
由於單一重迭會覆寫在任務欄按鈕上,而不是覆寫在個別視窗縮圖上,因此這是個別群組功能,而不是個別視窗。 重迭圖示的要求可以從任務列群組中的個別視窗接收,但不會排入佇列。 收到的最後一個重疊是顯示的重疊。
蜜蜂屬
進度列
任務列按鈕可用來顯示進度列。 這可讓視窗為使用者提供進度資訊,而不需要該使用者切換至視窗本身。 用戶可以在另一個應用程式中保持生產力,同時一目了然地看到在其他視窗中發生的一或多個作業進度。 任務欄按鈕中的進度列會反映視窗本身更詳細的進度指標。 這項功能可用來追蹤檔案複製、下載、安裝、媒體燃燒,或任何需要一段時間的作業。 這項功能不適用於通常周邊動作,例如載入網頁或列印檔。 該類型的進度應該會繼續顯示在視窗的狀態列中。
任務欄按鈕進度列與熟悉的進度列控件類似。 它可以根據作業完成百分比或不確定的選框樣式進度來顯示確定進度,以指出作業正在進行中,而不需要預測剩餘的時間。 它也可以顯示作業已暫停或發生錯誤,而且需要使用者介入。
蜜蜂屬
Deskbands
在 Windows 7 之前的 Windows 版本中,可以透過桌面帶達成類似縮圖工具列功能的功能,也就是裝載在任務列上的工具列。 例如,Windows Media Player 可以將任務列最小化為一組傳輸控件,而不是標準按鈕。 在 Windows 7 中,仍可實作 deskbands,且縮圖工具列並非全部取代。 並非所有應用程式都適合縮圖工具列,而目的地清單中的桌面帶或工作等其他解決方案可能是您應用程式的正確答案;您必須決定哪一個解決方案最適合您的應用程式,作為開發週期的一部分。 不過,請注意,桌帶必須支援已啟用半透明(“glass”) 的 Windows Aero,以及 IDeskBand2 介面。
蜜蜂屬
通知區域
通知區域已變更,可讓使用者更充分掌控任務欄上出現哪些圖示。 所有通知圖示現在預設都會隱藏,而且無法以程序設計方式控制可見度。 僅允許使用者選擇任務列上出現的通知圖示。 顯示通知批註方塊時,圖示會暫時顯示,但即便如此,用戶還是可以選擇將圖示靜音。 因此,當您希望應用程式向使用者傳達該資訊時,任務欄按鈕上的圖示重疊會成為有吸引力的選擇。
縮圖
在 Windows Vista 中,將滑鼠停留在應用程式的任務欄按鈕上,會顯示代表執行中視窗的縮圖。 如果任務欄已經折疊應用程式的視窗,則縮圖會以堆疊的形式顯示,但只會在縮圖本身中顯示使用中的視窗來表示此專案。
在 Windows 7 中,群組的每個成員都會顯示為個別的縮圖,現在也是切換目標。 應用程式可以定義其子系(例如真正的子視窗、個別檔或索引卷標),並提供每個視窗的對應縮圖,即使它們通常不會出現在任務欄上也一樣。 這可讓使用者直接切換至他們想要的應用程式檢視,而不是切換至應用程式,然後切換至其目的地。 例如,當滑鼠停留在群組任務欄按鈕上時,多文檔介面 (MDI)/tabbed-document interface (TDI)應用程式可以讓每個檔或索引標籤顯示為個別縮圖,並切換目標。
注意
如同在 Windows Vista 中,Aero 必須作用中才能檢視縮圖。
應用程式介面
- ITaskbarList3::RegisterTab
- ITaskbarList3::SetTabActive
- ITaskbarList3::SetTabOrder
- ITaskbarList3::UnregisterTab
- ITaskbarList4::SetTabProperties
視窗的縮圖表示法通常是自動的,但在結果不是最佳的情況下,可以明確指定縮圖。 根據預設,只有最上層視窗會自動為其產生縮圖,而子視窗的縮圖會顯示為泛型表示法。 這可能會導致使用者不太理想(甚至令人困惑)的體驗。 例如,每個子視窗的特定切換目標縮圖可提供更好的用戶體驗。
應用程式介面
- DwmSetWindowAttribute
- DwmSetIconicThumbnail
- DwmSetIconicLivePreviewBitmap
- DwmInvalidateIconicBitmaps
- WM_DWMSENDICONICTHUMBNAIL
- WM_DWMSENDICONICLIVEPREVIEWBITMAP
您可以選擇要作為縮圖的視窗特定區域。 當應用程式知道在縮圖大小檢視時,其檔或索引標籤看起來類似時,這非常有用。 然後,應用程式可以選擇只顯示其工作區的一部分,用戶可用來區分縮圖。 不過,將滑鼠停留在任何縮圖上方會顯示完整視窗的檢視,讓使用者也可以快速瀏覽它們。
如果顯示的縮圖多於可顯示,預覽會還原為舊版縮圖或標準圖示。
應用程式介面
若要將 釘選到任務列 至專案的快捷方式功能表,通常只需要包含 IsShortCut 項目的檔類型,即可註冊適當的作功能表處理程式。 這也適用於 [釘選到開始] 選單。 如需詳細資訊,請參閱 註冊殼層擴充功能處理程式。
相關主題