Windows7のタスクバーを活用したモニタ「Taskbar Meters」
Windowsアプリ(WPF)を起動して、タスクバーで、CPU、メモリ、ディスクI/Oを見れるアプリケーション「Taskbar Meters」。目盛のような感じでステータスが表示され、負荷が高い時は赤色、中ぐらいの時は黄色、低い時は緑色で表示されます。
アプリ自体はシンプルなものですが、Windows7のタスクバーを使うとステータスが一目でわかるというサンプルとしては面白いと思います。
コードの一部は次のような感じです。パフォーマンスカウンタから取得した値をWindows7タスクバーにセットしてます。Microsoft.WindowsAPICodePack.dllのMicrosoft.WindowsAPICodePack.Taskbarを使っています。
public partial class App : Application { private readonly PerformanceCounter _counter = new PerformanceCounter("PhysicalDisk", "% Disk Time", "_Total"); protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var mainWindow = new MainWindow(); mainWindow.Tick += WhenTimerTick; mainWindow.Show(); } private void WhenTimerTick(object sender, EventArgs e) { ((MainWindow)sender).SetTaskBarStatus((int)_counter.NextValue()); } } public partial class MainWindow : Window { public void SetTaskBarStatus(int value) { var state = TaskbarProgressBarState.Normal; if (value > _settings.Yellow) { state = value < _settings.Red ? TaskbarProgressBarState.Paused : TaskbarProgressBarState.Error; } // Microsoft.WindowsAPICodePack.TaskbarのTaskbarManagerにセット TaskbarManager.Instance.SetProgressState(state); TaskbarManager.Instance.SetProgressValue(value, 100); } }