获取 CPU、RAM 和 GPU 信息 - UWP 应用

Posted

技术标签:

【中文标题】获取 CPU、RAM 和 GPU 信息 - UWP 应用【英文标题】:Get CPU, RAM and GPU information - UWP App 【发布时间】:2018-06-20 00:17:59 【问题描述】:

是否可以在 UWP 应用程序中获取计算机的 CPU、GPU 和 RAM 的信息? E 在文本块中显示此信息。

我想知道处理器型号(例如:Intel Core i7 xxxx)和总 RAM

【问题讨论】:

你的答案在这里 => ***.com/questions/37959610/… What are the possibillities to get overall CPU percentage usage的可能重复 @Kaikon 我没有解释清楚,我想知道处理器型号(例如:Intel Core i7 xxxx),以及总RAM和GPU(例如:NVidia GTxxxx) @pmcilreavy 我没有解释清楚,我想知道处理器型号(例如:Intel Core i7 xxxx),以及总 RAM 和 GPU(例如:NVidia GTxxxx) 【参考方案1】:

我想知道处理器型号(例如:Intel Core i7 xxxx)和总 RAM

如果在这种情况下,UWP 应用无法满足您的需求。在 UWP 中,由于是沙盒,因此无法获取系统 CPU、GPU 和 RAM 信息。

对于 RAM,UWP 只能使用前面提到的 MemoryManager 类访问有关当前应用内存使用情况的信息。

关于 GPU 信息,目前 UWP 应用中没有 API 可以直接访问 GPU。您可能需要使用 DirectX 创建 UWP 应用并通过 DirectX 访问信息。您可能会找到一些相关示例here。

由于 Win32 可以做到这一点,作为建议,您可以尝试使用 Desktop Bridge 将 Win32 桌面应用程序转换为 UWP。如何在 Win32 中获取这些信息可以参考this。

【讨论】:

【参考方案2】:

您将需要使用 [DllImport("kernal32")] 获取完整信息。 This question 有你需要的实现。 This question 回答了如何更轻松地获得 RAM 使用率和 CPU 使用率。

【讨论】:

我没有解释清楚,我想知道处理器型号(例如:Intel Core i7 xxxx),以及总RAM和GPU(例如:NVidia GTxxxx)【参考方案3】:

您可以使用以下代码获取至少一些设备信息,其中包括 CPU 型号。它将包括很多设备,其中之一是 CPU。

string result = "Devices\r\n";

DeviceInformationCollection dic = await DeviceInformation.FindAllAsync(DeviceClass.All);

foreach (var deviceinfo in dic)

    result += "\r\nID: " + deviceinfo.Id + ", Name: " + deviceinfo.Name + ", Kind: " + deviceinfo.Kind + ", EnclosureLocation: " + deviceinfo.EnclosureLocation + ", IsEnabled: " + deviceinfo.IsEnabled;

【讨论】:

以上是关于获取 CPU、RAM 和 GPU 信息 - UWP 应用的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 exec 的情况下获取 CPU 使用率和 RAM 使用率?

使用 C++ 获取 Linux 中进程的 RAM 和 CPU 使用率

如何确定机器上的硬件(CPU 和 RAM)?

C# - 以百分比形式获取 GPU 的总使用量

渲染流水线中CPU和GPU之间的通信

如何计算理论上的最大 CPU-RAM 带宽?