![](http://blogs.gotdotnet.ru/personal/sergun/content/binary/WindowsLiveWriter/Windows7Taskbar.1Progressbar_11A60/image_3.png)
Windows 7で作業するときに最初に目を引くのは、更新されたタスクバーです。 新しいタスクバーには、実際に多くの概念的な変更があります。 これらの変更の1つは、タスクの進行状況を表示する機能です(進行状況バー)。
この図は、タスクバーの右側にコピープロセスに関する情報が表示されていることを明確に示しています。 このような機能は、ファイルをディスクにコピーし、ネットワーク(IE8)からデータをダウンロードするためにWindows 7に実装されています。 ただし、アプリケーションでこの機能を使用できることが重要です。 変換、コピー、データ生成、レポート、画像生成などのプロセスを表示するシナリオは非常に多くあります。
Windows用クライアントアプリケーションの開発者の観点から見ると、この機能を使用するプロセスは非常に簡単に思えます。 OSとの対話はアンマネージレベルで発生するため、.NETアプリケーションの場合、マネージラッパーの実装が必要です。 この作業はすべて、Microsoftの開発者によって既に行われ、 .NET Interop Sample Libraryに含まれています 。
.NET Interopサンプルライブラリは、多くのコンポーネントとデモアプリケーションで構成されています。 私たちはそれらのそれぞれにこだわることはありません。 Vista Bridgeサンプルライブラリ、Windows7.DesktopIntegrationおよびWindows7.DesktopIntegration.Registrationが含まれていることが重要です。
「Windows7.DesktopIntegration」プロジェクトには、タスクバーで作業する必要があるクラスが含まれています。 このプロジェクトにはWindowsFormsExtensionsクラスが含まれています。このクラスには、Formクラス(Windowsフォーム)の一連の拡張メソッドが含まれています。 この場合、次のメソッドに興味があります。
- SetTaskbarProgress(浮動パーセント)
- SetTaskbarProgressState(ThumbnailProgressStateの状態)
最初のメソッドを呼び出すと、現在のタスクの完了率を指定できます。 なぜなら これらはFormクラスの拡張メソッドであるため、このクラスはパラメーターとしてメソッドに渡されます。 これは、アクションが実行されるウィンドウのハンドルを決定するために必要です。
// = 35%
//
WindowsFormsExtensions.SetTaskbarProgress(this, 35);
//
(this = Form)this.SetTaskbarProgress(35);
進行状況バーのステータスを示す機会もあります。 利用可能な状態:
- NoProgress-進行状況は表示されません
- 不確定-進行状況バーが常にちらつく
- 通常-通常の進行状況表示
- エラー-エラー表示
- 一時停止-一時停止を表示
- 進行状況バーのステータスの設定は、2番目の方法を使用して実行されます。
WindowsFormsExtensions.SetTaskbarProgressState(this, Windows7Taskbar.ThumbnailProgressState.Normal);
//
this.SetTaskbarProgressState(Windows7Taskbar.ThumbnailProgressState.Normal);
残念ながら、拡張メソッドはWinFormsアプリケーション専用です。 ただし、WPFアプリケーション用に同様のクラスを構築することは難しくありません(デモアプリケーションを参照)。
その結果、Windows 7タスクバーのプログレスバーの機能を示す小さなアプリケーションを作成しました。
![](http://blogs.gotdotnet.ru/personal/sergun/content/binary/WindowsLiveWriter/Windows7Taskbar.1Progressbar_11A60/image_6.png)
コントロールボタンを使用して、進行状況バーの現在の値を示すことができ、そのステータスを選択することもできます。
- 通常モード
- 不確定モード
- エラーモード
- 一時停止モード
Windows 7向けのアプリケーションの開発にお役立てください!
デモアプリケーション:
Taskbar-Progress.zip