C/C++ 如何编程实现读取电脑所有的硬件信息

发布网友 发布时间:2022-04-21 00:17

我来回答

4个回答

热心网友 时间:2023-09-28 10:19

其实如果你只要读CPU温度或者GPU温度或硬盘参数这种就直接调用WMI接口API就可以,

但其实像“鲁大师”这种程序是自己重写ring0接口程序来获得所有硬件接口信息的,所以需要对底层驱动有很深的了解。

我用了一个开源的Lib实现了对所有硬件信息的读取,全部用Ring0完成,C++要用的话需要用Managed C++

热心网友 时间:2023-09-28 10:19

我只是写了一个,文件系统的信息。会打印出NTFS(我的文件用的是NTFS).不同的硬件会用到不同的API函数。
我不太了解这些,这个函数还是在网上查的。你可以到网上查一下用哪些API函数来获取哪些硬件的信息,然后再去查MSDN.
GetSystemMetrics是屏幕的信息。
#include<iostream>
#include<string>
#include<windows.h>

using namespace std;

int main()
{
DWORD dwSysFlags;
char fileSysNameBuf[100];
DWORD FILESYSNAMEBUFSIZE = 100;
GetVolumeInformation( "c:/", NULL, 0, NULL, NULL,
&dwSysFlags, fileSysNameBuf,
FILESYSNAMEBUFSIZE);
cout << fileSysNameBuf << endl;
cout << GetSystemMetrics(SM_CXSCREEN) << endl;
cout << GetSystemMetrics(SM_CYSCREEN) << endl;
return 0;
}

热心网友 时间:2023-09-28 10:20

代码如下:

#include<iostream>
#include<string>
#include<windows.h>

using namespace std;

int main()
{
DWORD dwSysFlags;
char fileSysNameBuf[100];
DWORD FILESYSNAMEBUFSIZE = 100;
GetVolumeInformation( "c:/", NULL, 0, NULL, NULL,
&dwSysFlags, fileSysNameBuf,
FILESYSNAMEBUFSIZE);
cout << fileSysNameBuf << endl;
cout << GetSystemMetrics(SM_CXSCREEN) << endl;
cout << GetSystemMetrics(SM_CYSCREEN) << endl;
return 0;
}

热心网友 时间:2023-09-28 10:20

建议你找找windows编程书看看,了解相应的api函数!
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com