Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

以 Managed Code 呼叫 Windows 7 工作列新功能:進度條與覆疊圖示實作

編輯:Win7 系統基礎知識

開發環境準備

  1. 下載 Windows 7 SDK Beta,取得 ShObjIdl.idl。
  2. 將介面定義中 HWND 改為 long 以利 Managed 互通。
  3. midl 編譯產生 ShObjIdl.tlb。
  4. tlbimp 產生 Managed DLL(ShObjIdl.dll),專案加入參考。

核心介面與列舉

// 進度狀態列舉
private enum TbpFlag {
    TBPF_ERROR = 1,
    TBPF_PAUSED = 2,
    TBPF_NORMAL = 3,
    TBPF_INDETERMINATE = 4
}

// 關鍵方法
ITaskbarList3.SetProgressState(hwnd, TbpFlag);
ITaskbarList3.SetProgressValue(hwnd, completed, total);

使用範例

// 設定正常進度狀態
taskbarList.SetProgressState(this.Handle, TbpFlag.TBPF_NORMAL);

// 更新進度 50/100
taskbarList.SetProgressValue(this.Handle, 50, 100);

執行效果

  • 20%:工作列圖示顯示淺綠進度條。
  • 50%:進度條延伸至一半。
  • 100%:進度條滿格,自動恢復一般圖示狀態。

擴展應用

參考 PDC 2008 白皮書,同樣流程可實作 Jump List、縮圖工具列、覆疊圖示等工作列新功能。C++ 原生開發更簡直接,參考 SDK 範例 TaskbarIntegration\PeripheralStatus。

Copyright © Windows教程網 All Rights Reserved