Получение информации о железе
Приведённый пример использует функцию 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
}
}