2009-05-18 7 views
1

C#で書かれた.NETベースのデスクトップアプリケーションを開発しています。プラットフォームの詳細キャプチャAPI /ツール - 同等のWindowsエラー報告

  1. オペレーティングシステムの詳細::バージョン、サービスパックなど
  2. .NETの詳細:Frameworkバージョン
  3. 場合とするときにアプリケーションがクラッシュし、私は、アプリケーションが実行されたマシンに関する特定の詳細情報をキャプチャしたいと思います
  4. インストールされているプログラム
  5. クラッシュ時に実行されていたプロセス。
  6. 私は行方不明ですが、ここにいるはずです。

これをすべて便利に利用できるツールやAPIセットはありますか?私がしたいのは、APIを起動して(クラッシュが発生したとき)、すべての詳細をキャプチャして、ユーザーがそれを私に報告できるようにすることです。 Windowsのエラー報告サービスのようなもの。

P.S:現在、Windows Error Reporting serviceに申し込むことはできません。

答えて

2

1)System.OperatingSystem osInfo = System.Environment.OSVersion;

2)http://geekswithblogs.net/lorint/archive/2006/01/30/67654.aspx

3) 文字列のRegistryKey = @ "SOFTWARE \マイクロソフト\ Windowsの\ CurrentVersionの\アンインストール"。 (http://www.onedotnetway.com/get-a-list-of-installed-applications-using-linq-and-c/経由)

 using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registryKey)) 
     { 
      var query = from a in 
          key.GetSubKeyNames() 
         let r = key.OpenSubKey(a) 
         select new 
         { 
          Application = r.GetValue("DisplayName") 
         }; 

      foreach (var item in query) 
      { 
       if (item.Application != null) 
        Console.WriteLine(item.Application); 
      } 
     } 

4)

Process[] processlist = Process.GetProcesses(); 

foreach(Process theprocess in processlist) 
{ 
    Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id); 
}