获取硬件信息

【勇芳软件工作室】汉化HomePreviousNext

以下示例使用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