Windows 7のプログラミング:タスクバー。 パート1-プログレスバー

新しいWindows 7オペレーティングシステムには、多数の革新と改善が含まれています。 これらの改善は、安全性、パフォーマンス、信頼性などに関連しています。 ユーザーインターフェイスにも真剣な注意が払われています。 Windowsプラットフォーム上のソフトウェアの開発者にとって、新しいOSも興味深いものです。 プログラムによって影響を受ける可能性のある要素が含まれています。 いくつかの投稿の過程で、主な革新とそれらのソフトウェアモデルについて説明します。



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フォーム)の一連の拡張メソッドが含まれています。 この場合、次のメソッドに興味があります。



最初のメソッドを呼び出すと、現在のタスクの完了率を指定できます。 なぜなら これらはFormクラスの拡張メソッドであるため、このクラスはパラメーターとしてメソッドに渡されます。 これは、アクションが実行されるウィンドウのハンドルを決定するために必要です。

// = 35%
//
WindowsFormsExtensions.SetTaskbarProgress(this, 35);
//
(this = Form)this.SetTaskbarProgress(35);


進行状況バーのステータスを示す機会もあります。 利用可能な状態:



WindowsFormsExtensions.SetTaskbarProgressState(this, Windows7Taskbar.ThumbnailProgressState.Normal);

//

this.SetTaskbarProgressState(Windows7Taskbar.ThumbnailProgressState.Normal);


残念ながら、拡張メソッドはWinFormsアプリケーション専用です。 ただし、WPFアプリケーション用に同様のクラスを構築することは難しくありません(デモアプリケーションを参照)。

その結果、Windows 7タスクバーのプログレスバーの機能を示す小さなアプリケーションを作成しました。



コントロールボタンを使用して、進行状況バーの現在の値を示すことができ、そのステータスを選択することもできます。



Windows 7向けのアプリケーションの開発にお役立てください!

デモアプリケーション:
Taskbar-Progress.zip

Source: https://habr.com/ru/post/J59856/


All Articles