2012-04-21 4 views
1

Я искал способ получить информацию о системе, например. общая память, количество процессоров, свободное место на жестком диске и т. д., запрашивая ядро ​​для этой информации, как мне это сделать с C++, без использования системных вызовов или системных систем, через kernel.dll, возможно? .. Я нашел много информации, но с использованием системных вызовов мне нужно получить системную информацию, но не использовать созданную библиотеку, больше похоже на создание моего запроса ядра на эту информацию.Как я могу получить информацию о компьютерах?

+0

@ WalterMaier-Murdnelch Если вы публикуете эти типы комментариев, сообщите OP, что их вопрос * может * быть автоматически перемещен туда, если сообщество решает, и что ** они не должны повторно отправлять ** его. Как правило, сообщество увидит, что это связано с программированием, и пользователи будут голосовать в любом случае, так что вряд ли какая-либо польза от комментариев «это должно быть на XYZ.SE». Ура! – slhck

+0

@slhck: ack, сделает это в будущем – Baarn

ответ

0

Я знаю, что вы сказали «без SYSTEM_INFO структур», но я думаю, что GetSystemInfo - это именно то, что вы хотите.

От Getting Hardware Information на MSDN:

#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 spefically показывает, что это в Kernel32.dll - Я думаю, что доллар останавливается здесь.

Смежные вопросы