如何获取有关计算机设备的信息?

时间:2012-04-21 15:37:48

标签: kernel libraries

我一直在寻找获取系统信息的方法,例如总内存,处理器数量,硬盘驱动器可用空间等。向内核询问该信息,我如何设法从c ++中完成,不使用.system调用或system_info结构,也许通过kernel.dlls?我发现很多信息,但使用系统调用,我需要获取系统信息但不使用创建的库,更像是创建我自己的内核请求该信息。

1 个答案:

答案 0 :(得分:0)

我知道你说“没有SYSTEM_INFO结构”,但我认为GetSystemInfo正是你想要的。

来自MSDN上的Getting Hardware Information

    #include <windows.h>
    #include <stdio.h>
    #pragma comment(lib, "user32.lib")

    void main()
    {
       SYSTEM_INFO siSysInfo;

       // Copy the hardware information to the SYSTEM_INFO structure. 

       GetSystemInfo(&siSysInfo); 

       // Display the contents of the SYSTEM_INFO structure. 

       printf("Hardware information: \n");  
       printf("  OEM ID: %u\n", siSysInfo.dwOemId);
       printf("  Number of processors: %u\n", 
          siSysInfo.dwNumberOfProcessors); 
       printf("  Page size: %u\n", siSysInfo.dwPageSize); 
       printf("  Processor type: %u\n", siSysInfo.dwProcessorType); 
       printf("  Minimum application address: %lx\n", 
          siSysInfo.lpMinimumApplicationAddress); 
       printf("  Maximum application address: %lx\n", 
          siSysInfo.lpMaximumApplicationAddress); 
       printf("  Active processor mask: %u\n", 
          siSysInfo.dwActiveProcessorMask); 
    }

GetSystemInfo的文档明确指出它位于Kernel32.dll - 我认为降压在此停止。