共用方式為


工作列延伸模組

從 Windows 7 開始,工作列已大幅擴充,以盡可能快速且有效率的方式取得使用者。 為此,使用者需要完成的應用程式視窗、檔案和命令,現在會集中化為單一工作列按鈕,以合併先前散佈的資訊來源和控制項。 使用者現在可以在單一位置找到個別檔或索引標籤的一般工作、最近和頻繁的檔案、警示、進度通知和縮圖。

整合啟動和切換

從 Windows 7 工作列開始,快速啟動不再是個別的工具列。 快速啟動通常包含的啟動器快捷方式現在會釘選到工作列本身,並混用目前執行中應用程式的按鈕。 當使用者從釘選的啟動器快捷方式啟動應用程式時,只要應用程式正在執行,圖示就會轉換成應用程式的工作列按鈕。 當使用者關閉應用程式時,按鈕會還原為圖示。 不過,啟動器快捷方式和執行中應用程式的按鈕只是 Windows 7 工作列按鈕的不同形式。

Windows 7 工作列

根據預設,新安裝會釘選一組小型應用程式。 除了這些以外,只有使用者可以釘選進一步的應用程式;不允許應用程式以程式設計方式釘選。

[快速啟動] 的 [顯示桌面] 功能現在位於工作列最右邊。 將滑鼠停留在此區域上會導致所有使用中的視窗變成透明,以顯示桌面。 按一下區域會執行將所有視窗最小化並切換至桌面的熟悉動作。

當應用程式執行時,其工作列按鈕會變成存取下列所有功能的單一位置,每個功能都會在下面詳細討論。

  • 工作:一般應用程式命令,即使應用程式未執行也存在。
  • 目的地:應用程式特有的最近和經常存取的檔案。
  • 縮圖:視窗切換,包括個別索引標籤和檔的切換目標。
  • 縮圖工具列:縮圖本身的基本應用程式控制。
  • 進度列圖示重迭:狀態通知。

工作列按鈕可以代表啟動器、單一應用程式視窗或群組。 應用程式使用者模型識別碼 (AppUserModelID) 識別碼會指派給每個群組。 您可以指定 AppUserModelID 來覆寫標準工作列群組,這可讓視窗成為相同群組的成員,否則可能不會看到這些群組的成員。 群組的每個成員都會在縮圖飛出視窗中提供個別的預覽,當滑鼠停留在群組的工作列按鈕上時顯示。 請注意,群組本身仍然是選擇性的。

從 Windows 7 開始,工作列按鈕現在可以由使用者透過拖放作業重新排列。

注意

[快速啟動] 資料夾 (FOLDERID_QuickLaunch) 仍可供回溯相容性使用,不過不再有快速啟動 UI。 不過,新的應用程式不應該要求在安裝期間將圖示新增至快速啟動。

 

如需詳細資訊,請參閱 應用程式使用者模型識別碼 (AppUserModelIDs)

跳躍清單

使用者通常會啟動程式,以存取檔或執行程式內的工作。 遊戲程式的使用者可能會想要進入已儲存的遊戲,或以特定字元啟動,而不是從頭重新開機遊戲。 若要讓使用者更有效率地達成其最終目標,與應用程式相關聯的 目的地 和一般 工作 清單會附加至該應用程式的工作列按鈕 (,以及對等的 [ 開始] 功能表項目) 。 這是應用程式的跳躍清單。 不論工作列按鈕處於啟動器狀態, (應用程式未執行) 還是代表一或多個視窗,都可以使用跳躍清單。 以滑鼠右鍵按一下工作列按鈕會顯示應用程式的快捷方式清單,如下圖所示。

具有釘選、常用和工作類別的跳躍清單

根據預設,標準跳躍清單包含兩個類別:最近的專案和已釘選的專案,雖然因為只有具有內容的類別會顯示在 UI 中,所以第一次啟動時不會顯示這兩個類別。 一律存在應用程式啟動圖示 (以啟動更多應用程式實例) 、從工作列釘選或取消釘選應用程式的選項,以及任何開啟視窗的 Close 命令。

Destinations

[最近] 和 [頻繁] 類別會被視為包含目的地。 目的地通常是檔案、檔或 URL,是可以編輯、流覽、檢視等等的專案。 將目的地視為一件事,而不是動作。 一般而言,目的地是 Shell 命名空間中的專案,由 IShellItemIShellLink表示。 目的地清單的這些部分類似于 [ 開始 ] 功能表最近使用的檔案清單, (預設不再顯示) 和常用應用程式清單,但它們是應用程式特有的,因此對使用者而言更精確且有用。 目的地清單中使用的結果是透過對 SHAddToRecentDocs的呼叫來計算。 請注意,當使用者從 Windows 檔案總管開啟檔案,或使用一般檔案對話方塊開啟、儲存或建立檔案時,系統會自動為您呼叫 SHAddToRecentDocs ,這會導致許多應用程式在目的地清單中顯示其最近的專案,而不會對其採取任何動作。

啟動目的地就像使用 Open With 命令啟動專案一樣。 應用程式會在載入該目的地且可供使用時啟動。 目的地清單中的專案也可以從清單拖曳到置放目的地,例如電子郵件訊息。 藉由將這些專案集中化在目的地清單中,即可讓使用者更快速地前往該處,也就是目標。

當專案出現在目的地清單的 [最近 ] 類別 (或 [常用 ] 類別或 自訂類別 中,如稍後章節) 所述,使用者可能會想要確保專案一律位於清單中以供快速存取。 若要達成此目的,他或她可以將該專案釘選到清單中,這會將專案新增至 [釘選] 類別。 當使用者主動處理目的地時,他或她想要輕鬆手邊,因此會將它釘選到應用程式的目的地清單。 使用者的工作完成後,他或她只是取消釘選項目。 此使用者控制項會讓清單保持整齊且相關。

目的地清單可視為 [ 開始 ] 功能表的應用程式特定版本。 目的地清單不是快捷方式功能表。 目的地清單中的每個專案都可以以滑鼠右鍵按一下它自己的快捷方式功能表。

API

工作

跳躍清單的另一個內建部分是 [ 工作 ] 類別。 雖然目的地是一件事,但工作是動作,在此情況下是應用程式特定的動作。 另一種方式是目的地是名詞,而工作則是動詞。 一般而言,工作是具有命令列引數的 IShellLink 專案,表示應用程式可以觸發的特定功能。 同樣地,概念是盡可能集中處理與應用程式相關的資訊。

應用程式會根據程式的功能定義工作,以及使用者預期要對其執行的重要工作。 工作應該沒有內容,因此應用程式不需要執行,才能運作。 它們也應該是一般使用者在應用程式中執行的統計上最常見的動作,例如撰寫電子郵件訊息或開啟郵件程式中的行事曆、在字處理器中建立新檔、在特定模式中啟動應用程式,或啟動其中一個子命令。 應用程式不應該以標準使用者不需要的進階功能或單次動作,例如註冊等進階功能來雜亂顯示功能表。 請勿將工作用於促銷專案,例如升級或特殊供應專案。

強烈建議工作清單是靜態的。 無論應用程式的狀態或狀態為何,它都應該維持不變。 雖然可以動態變更清單,但您應該考慮這可能會混淆不預期目的地清單的該部分變更的使用者。

API

自訂跳躍清單

應用程式可以定義自己的類別,並在跳躍清單中新增或取代標準 [最近 ] 和 [ 常用 ] 類別。 應用程式可以根據應用程式的架構和預定用途,在這些自訂類別中控制自己的目的地。 下列螢幕擷取畫面顯示具有 [歷程記錄] 類別的自訂跳躍清單。

自訂跳躍清單

如果應用程式決定提供自訂類別,該應用程式會承擔填入它的責任。 類別內容仍應為使用者專屬,且以使用者歷程記錄、動作或兩者為基礎,但透過自訂類別,應用程式可以判斷想要追蹤的專案,以及它想要忽略的內容,或許是根據應用程式選項。 例如,音訊程式可能會選擇只包含最近播放的相簿,並忽略最近播放的個別曲目。

如果使用者已從清單中移除專案,這一律是使用者選項,應用程式必須接受該專案。 應用程式也必須確保清單中的專案有效,或者如果已刪除,它們就會正常失敗。 您可以透過程式設計方式移除個別專案或清單的整個內容。

目的地清單中的專案數目上限取決於系統根據各種因素,例如顯示解析度和字型大小。 如果所有類別中的所有專案沒有足夠的空間,則會從下而上截斷這些專案。

API

縮圖工具列

若要提供特定視窗按鍵命令的存取權,而不需要讓使用者還原或啟用應用程式的視窗,活動工具列控制項可以內嵌在該視窗的縮圖預覽中。 例如,Windows 媒體播放機可能會提供標準媒體傳輸控制項,例如播放、暫停、靜音和停止。 UI 會在縮圖正下方顯示此工具列,如下圖所示,它並未涵蓋其中的任何部分。

Windows 媒體播放機的縮圖工作列,包含三個按鈕:返回、播放和轉寄

此工具列只是熟悉的標準工具列通用控制項。 最多有七個按鈕。 每個按鈕的識別碼、影像、工具提示和狀態都會定義在 結構中,然後傳遞給工作列。 應用程式可以根據目前狀態,顯示、啟用、停用或隱藏縮圖工具列中的按鈕。

因為有有限的空間可顯示縮圖,以及要顯示的縮圖數目可變,所以應用程式不保證有指定的工具列大小。 如果空間受到限制,工具列中的按鈕會從右至左截斷。 因此,當您設計工具列時,應該優先處理與按鈕相關聯的命令,並確保最重要會先出現,而且最可能因為空間問題而捨棄。

注意

當應用程式顯示視窗時,系統會建立其工作列按鈕。 當按鈕就緒時,工作列會將 TaskbarButtonCreated 訊息傳送至視窗。 其值是藉由呼叫 RegisterWindowMessage (L (「TaskbarButtonCreated」) ) 來計算。 應用程式必須先收到該訊息,才能呼叫任何 ITaskbarList3 方法。

 

API

圖示重迭

應用程式可以透過工作列按鈕向使用者傳達特定通知和狀態,方法是在按鈕上顯示小型重迭。 這些重迭類似于用於快捷方式或安全性通知的現有重迭類型,顯示在按鈕右下角。 若要顯示重迭圖示,工作列必須處於預設大型圖示模式,如下列螢幕擷取畫面所示。

具有重迭的 Windows Messenger 工作列按鈕,以指出可用的狀態

圖示重迭可作為狀態的內容相關通知,旨在否定個別通知區域狀態圖示向使用者傳達該資訊的需求。 例如,Microsoft Outlook 中目前顯示在通知區域中的新郵件狀態,現在可以透過工作列按鈕上的重迭來表示。 同樣地,您必須在開發週期期間決定哪一種方法最適合您的應用程式。 重迭圖示旨在提供重要、長期狀態或通知,例如網路狀態、Messenger 狀態或新郵件。 使用者不應該顯示不斷變更的重迭或動畫。

因為單一重迭會重迭在工作列按鈕上,而不是個別視窗縮圖上,所以這是個別群組功能,而不是個別視窗。 重迭圖示的要求可以從工作列群組中的個別視窗接收,但不會排入佇列。 最後收到的重迭是顯示的重迭。

API

進度列

工作列按鈕可用來顯示進度列。 這可讓視窗向使用者提供進度資訊,而不需要該使用者切換至視窗本身。 使用者可以在另一個應用程式中保持生產力,同時查看在其他視窗中發生一或多個作業的進度。 預期工作列按鈕中的進度列會反映視窗本身中更詳細的進度指標。 這項功能可用來追蹤檔案複製、下載、安裝、媒體消耗,或任何需要一段時間的作業。 這項功能不適用於一般周邊動作,例如載入網頁或列印檔案。 該類型的進度應該會繼續顯示在視窗的狀態列中。

工作列按鈕進度列類似于熟悉的進度列控制項。 它可以根據作業的已完成百分比或不確定的 marquee 樣式進度來顯示確定進度,以指出作業正在進行中,而不需預測剩餘的時間。 它也可以顯示作業已暫停或發生錯誤,而且需要使用者介入。

API

Deskbands

在 Windows 7 之前的 Windows 版本中,可以透過桌面帶達成類似縮圖工具列功能的內容,也就是裝載于工作列中的工具列。 例如,Windows 媒體播放機可以將工作列最小化為一組傳輸控制項,而不是標準按鈕。 在 Windows 7 中,仍然可以實作 deskbands,而縮圖工具列並非全部取代。 並非所有應用程式都適合縮圖工具列,而目的地清單中的另一個解決方案,例如 deskband 或工作可能是應用程式的正確答案;您必須決定哪一個解決方案最適合您的應用程式,作為開發週期的一部分。 不過,請注意,deskband 必須支援已啟用透明 (「glass」) 和 IDeskBand2 介面的 Windows 裝置。

API

通知區域

通知區域已有變更,可讓使用者更充分掌控工作列上出現的圖示。 預設會隱藏所有通知圖示,而且無法以程式設計方式控制可見度。 只允許使用者選擇工作列上出現的通知圖示。 顯示通知批註方塊時,圖示會暫時顯示,但甚至使用者可以選擇將其靜音。 因此,當您希望應用程式將該資訊傳達給使用者時,工作列按鈕上的圖示重迭會成為吸引人的選擇。

縮圖

在 Windows Vista 中,將滑鼠停留在應用程式的工作列按鈕上,會顯示代表執行中視窗的縮圖。 如果工作列已折迭應用程式的視窗,縮圖會以堆疊的形式顯示,但只有使用中視窗會顯示在縮圖本身。

在 Windows 7 中,群組的每個成員都會顯示為個別的縮圖,現在也是切換目標。 應用程式可以定義其子系 (,例如 true 子視窗、個別檔或索引標籤) ,並提供每個視窗的對應縮圖,即使它們通常不會出現在工作列中也一樣。 這可讓使用者直接切換到想要的應用程式檢視,而不是切換至應用程式,然後切換至其目的地。 例如,多文檔介面 (MDI) /tabbed-document 介面, (TDI) 應用程式可以將每個檔或索引標籤顯示為個別縮圖,並在滑鼠停留在群組的工作列按鈕上方時切換目標。

三個工作列縮圖,代表 Windows Internet Explorer 中的個別索引標籤

注意

如同在 Windows Vista 中,必須有作用中才能檢視縮圖。

 

API

視窗的縮圖標記法通常是自動的,但在結果不是最佳的情況下,可以明確指定縮圖。 根據預設,只有最上層視窗會自動為其產生縮圖,而子視窗的縮圖會顯示為泛型標記法。 這可能會導致較不理想的 (,甚至造成使用者令人困惑的) 體驗。 例如,每個子視窗的特定切換目標縮圖可提供更佳的使用者體驗。

API

您可以選取視窗的特定區域做為縮圖。 當應用程式知道其檔或索引標籤在縮圖大小檢視時看起來類似時,這非常有用。 然後,應用程式可以選擇只顯示其工作區的一部分,讓使用者可用來區分縮圖。 不過,將滑鼠停留在任何縮圖上方時,會顯示其後方的完整視窗檢視,讓使用者也可以快速流覽它們。

如果顯示的縮圖多於可顯示,預覽會還原為舊版縮圖或標準圖示。

API

若要將 [釘選到工作列 ] 新增至專案的快捷方式功能表,通常只需要包含 IsShortCut 專案的檔案類型,即可註冊適當的操作功能表處理常式。 這也適用于 [釘選到開始] 功能表。 如需詳細資訊,請參閱 註冊殼層延伸模組處理常式

工作列

應用程式使用者模型識別碼 (AppUserModelIDs)

通知和通知區域