平台详细信息捕获 API/工具——Windows 错误报告等效项

Posted

技术标签:

【中文标题】平台详细信息捕获 API/工具——Windows 错误报告等效项【英文标题】:Platform details capturing API/tool -- Windows Error Reporting equivalent 【发布时间】:2010-10-27 02:25:44 【问题描述】:

我正在开发一个用 C# 编写的基于 .NET 的桌面应用程序。如果应用程序崩溃,我想捕获有关运行应用程序的机器的某些详细信息:

    操作系统详细信息:版本、服务包等 .NET 详细信息:框架版本 已安装的程序 崩溃时正在运行的进程。 我缺少的东西,但应该在这里。

是否有工具或 API 集可以让我方便地获得这一切?我想做的是调用 API(当崩溃发生时),捕获所有细节,并让用户能够将其报告给我。类似于 Windows 错误报告服务。

P.S:目前,我无法注册 Windows Error Reporting service 本身。

【问题讨论】:

【参考方案1】:

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

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

3) string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";

        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); 
            
        

(通过http://www.onedotnetway.com/get-a-list-of-installed-applications-using-linq-and-c/)

4)

Process[] processlist = Process.GetProcesses();

foreach(Process theprocess in processlist)

    Console.WriteLine("Process: 0 ID: 1", theprocess.ProcessName, theprocess.Id);

【讨论】:

以上是关于平台详细信息捕获 API/工具——Windows 错误报告等效项的主要内容,如果未能解决你的问题,请参考以下文章

异步 - 等待 JavaScript:无法从错误对象中捕获错误详细信息 [重复]

阿里云物联网平台专用工具详细说明

微软工程师详细介绍了Windows 11原生DX12视频编码API

如何在单个 API 调用中获取单个 VM 的多个 VM 指标(百分比 CPU、磁盘读取操作/秒、内存等 .. 平台指标)详细信息

PHP请求SKU详细信息

用于在 Windows 上捕获声音的 API