以下示例使用GetSystemInfo功能获取硬件信息,例如OEM标识符,处理器类型,页面大小等。该示例在窗口的客户区显示信息。
SYSTEM_INFO siSysInfo; // struct。硬件信息
int aTabs[1] = {260}; // Tab停止TabbedTextOut
TCHAR tchBuffer[BUFFER]; //用于扩展字符串的缓冲区
int nSize; //字符串大小
//显示“硬件信息”标题。
nSize = sprintf(tchBuffer,
"Hardware information:");
TextOut(hdc, 15, 20, tchBuffer, nSize);
//将硬件信息复制到SYSTEM_INFO结构中。
GetSystemInfo(&siSysInfo);
//显示SYSTEM_INFO结构的内容。
nSize = sprintf(tchBuffer,
“OEM ID:%u \\ t处理器数量:%u”,
siSysInfo.dwOemId,
siSysInfo.dwNumberOfProcessors);
TabbedTextOut(hdc,25,40,tchBuffer,
nSize, 1, aTabs, 25);
nSize = sprintf(tchBuffer,
“页面大小:%u \\ t处理器类型:%u”,
siSysInfo.dwPageSize,
siSysInfo.dwProcessorType);
TabbedTextOut(hdc,25,60,tchBuffer,
nSize, 1, aTabs, 25);
nSize = sprintf(tchBuffer,
“最小应用程序地址:%lx \\ t最大应用程序地址:%lx”,
siSysInfo.lpMinimumApplicationAddress,
siSysInfo.lpMaximumApplicationAddress);
TabbedTextOut(hdc,25,80,tchBuffer,
nSize, 1, aTabs, 25);
nSize = sprintf(tchBuffer,
“主动处理器掩码:%u”,
siSysInfo.dwActiveProcessorMask);
TextOut(hdc, 25, 100, tchBuffer, nSize);
以下示例使用GetSystemMetrics功能来确定是否安装了鼠标,以及鼠标按钮是否被交换。该示例还使用SystemParametersInfo函数来检索鼠标阈值和速度。它将在信息框中显示信息。
TCHAR tchBuffer[BUFFER]; //用于扩展字符串的缓冲区
int nSize; //字符串大小
BOOL fResult; //系统关机标志
int aMouseInfo[3]; //数组的鼠标信息
//有鼠标吗?
fResult = GetSystemMetrics(SM_MOUSEPRESENT);
if (fResult == 0)
{
//指示是否没有鼠标。
nSize = sprintf(tchBuffer, "No mouse installed.");
}
其他
{
//如果有鼠标,请确定其按钮是否被交换。
fResult = GetSystemMetrics(SM_SWAPBUTTON);
if (fResult == 0)
{
nSize = sprintf(tchBuffer, "Buttons not swapped.\r");
}
其他
{
nSize = sprintf(tchBuffer, "Buttons swapped.\r");
}
//获取鼠标速度和阈值。
SystemParametersInfo(SPI_GETMOUSE, //获取鼠标信息
NULL, // 不曾用过
&aMouseInfo, //保存鼠标信息
NULL); // 不曾用过
nSize += sprintf(tchBuffer + nSize,
"Speed: %d\r", aMouseInfo[2]);
sprintf(tchBuffer + nSize,
“阈值(x,y):%d,%d”,
aMouseInfo[0], aMouseInfo[1]);
}
//显示鼠标信息。
MessageBox(NULL,tchBuffer,“鼠标信息”,
MB_ICONINFORMATION);
下一个示例使用SystemParametersInfo将鼠标速度加倍,并更新WIN.INI文件中的MouseSpeed值。
TCHAR tchBuffer[BUFFER]; //用于扩展字符串的缓冲区
int nSize; //字符串大小
int aMouseInfo[3]; //数组的鼠标信息
//获取当前的鼠标速度。
SystemParametersInfo(SPI_GETMOUSE, //获取鼠标信息
NULL, // 不曾用过
&aMouseInfo, //保存鼠标信息
NULL); // 不曾用过
//双倍
aMouseInfo[2] = 2 * aMouseInfo[2];
//将鼠标速度更改为新值并更新WIN.INI。
SystemParametersInfo(SPI_SETMOUSE, //设置鼠标信息
NULL, // 不曾用过
aMouseInfo, //鼠标信息
SPIF_UPDATEINIFILE); //更新WIN.INI