Получение информации о железе

Приведённый пример использует функцию GetSystemInfo и позволяет узнать OEM идентификатор, тип процессора, размер страницы и т.д. Пример является консольным приложением. 

#include <windows.h>
#include <stdio.h>

void main()
{
SYSTEM_INFO siSysInfo;

// Копируем информацию о железе в структуру SYSTEM_INFO.

GetSystemInfo(&siSysInfo);

// Отображаем содержимое структуры SYSTEM_INFO.

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

В следующем примере используется функция GetSystemMetrics чтобы определить, установлена ли мышка и не поменялось ли функциональное назначение её кнопок. В примере также используется функция SystemParametersInfo для определения чувствительности мышки и её границ.

#include <windows.h>
#include <stdio.h>

void main()
{
BOOL fResult;
int aMouseInfo[3];

fResult = GetSystemMetrics(SM_MOUSEPRESENT);

if (fResult == 0)
printf("No mouse installed.\n");
else
{
printf("Mouse installed.\n");

// Определяем, не поменялись ли кнопки мышки.

fResult = GetSystemMetrics(SM_SWAPBUTTON);

if (fResult == 0)
printf("Buttons not swapped.\n");
else printf("Buttons swapped.\n");

// Получаем чувствительность мышки и её границы.

fResult = SystemParametersInfo(
SPI_GETMOUSE, // получить информацию о мышке
NULL, // не используется
&aMouseInfo, // сюда поместить информацию
NULL); // не используется

if( fResult )
{
printf("Speed: %d\n", aMouseInfo[2]);
printf("Threshold (x,y): %d,%d\n",
aMouseInfo[0], aMouseInfo[1]);
}
}
}

В следующем примере используется функция SystemParametersInfo для того, чтобы увеличить скорость мышки вдвое.

#include <windows.h>
#include <stdio.h>

void main()
{
BOOL fResult;
int aMouseInfo[3]; // массив для хранения информации

// Получаем текущую чувствительность мышки.

fResult = SystemParametersInfo(
SPI_GETMOUSE, // получаем информацию о мышке
NULL, // не используется
&aMouseInfo, // сюда поместить информацию
NULL); // не используется

// Умножаем на 2.

if( fResult )
{
aMouseInfo[2] = 2 * aMouseInfo[2];

// Меняем чувствительность мышки.

SystemParametersInfo(
SPI_SETMOUSE, // изменяем информацию мышки
NULL, // не используется
aMouseInfo, // массив с информацией
SPIF_SENDCHANGE); // обновить win.ini
}