2017-03-05 1 views
-1

システム診断情報をコンソールアプリケーションに表示しようとしていますが、表示されるとわかったらSMTPメールを送信できます。C#コンソールアプリケーションでシステム診断情報を表示する際に問題が発生する

私はこれを呼び出すときに表示されるすべての system.diagnoistics.performancecounter system.diagnoistics.performancecounter

public static void GetUsageInformation() 
     { 
      cpu = new PerformanceCounter(); 
      cpu.CategoryName = "Processor"; 
      cpu.CounterName = "% Processor Time"; 
      cpu.InstanceName = "_Total"; 

      ram = new PerformanceCounter("Memory", "Available Mbytes"); 

      Console.WriteLine(cpu); 
      Console.WriteLine(ram); 
     } 

あなたは私が間違ってここにやっていることと、いくつかの援助を提供することができますか?私はそれが最後の数日に実行したすべての他のもののようにスーパーシンプルだと確信しています。ここで何が起こっている

答えて

1

Console.WriteLineある確かSystem.Diagnostics.PerformanceCounterある内部ctr.ToString()を呼び出しConsole.WriteLine()、によって得られたあなたのPerformanceCounterオブジェクトの文字列表現を、表示しています。私が望むと思うのは、PerformanceCounterクラスのプロパティの文字列表現です。

あなたが直接WriteLineメソッドのプロパティのいずれかができ

、ALA ...

Console.WriteLine(cpu.CategoryName); 
Console.WriteLine(cpu.CounterName); 
// etc... 

または使用リフレクション。これにより、あなたは起動します。

PropertyInfo[] properties = ctr.GetType().GetProperties(); 
    foreach (PropertyInfo property in properties) 
    { 
     Console.Write(property.Name + ":\t"); 
     Console.WriteLine(property.GetValue(ctr).ToString()); 
    } 
+0

console.writeline(cpu.CategoryName);これらのすべては引用符で囲まれた文字情報のみを表示します。 – mcavanaugh418

+0

これは正しい動作です。あなたは彼らに何を見せたいと思いますか? –

+0

私は実際のプロセッサタイミングを期待していました。多分私は間違った方法でこのことをやっています。 – mcavanaugh418

関連する問題