GetSystemMetrics使用方法以及返回值说明
时间: 2023-08-02 10:07:21 浏览: 194
易语言API函数说明
`GetSystemMetrics`是一个Windows API函数,用于检索系统度量信息的指定系统度量值或配置设置。
函数原型为:
```c++
int WINAPI GetSystemMetrics(
int nIndex
);
```
其中,`nIndex`参数指定要检索的系统度量值或配置设置。常用的参数及其说明如下:
| 参数 | 说明 |
| ------------------ | ------------------------------------------------------------ |
| `SM_CXSCREEN` | 屏幕的宽度(以像素为单位) |
| `SM_CYSCREEN` | 屏幕的高度(以像素为单位) |
| `SM_CXVSCROLL` | 垂直滚动条的宽度 |
| `SM_CYHSCROLL` | 水平滚动条的高度 |
| `SM_CYCAPTION` | 标题栏的高度 |
| `SM_CXBORDER` | 窗口边框的宽度 |
| `SM_CYBORDER` | 窗口边框的高度 |
| `SM_CXDLGFRAME` | 对话框边框的宽度 |
| `SM_CYDLGFRAME` | 对话框边框的高度 |
| `SM_CYVTHUMB` | 纵向滚动条拇指按钮的高度 |
| `SM_CXHTHUMB` | 横向滚动条拇指按钮的宽度 |
| `SM_CXICON` | 图标的宽度 |
| `SM_CYICON` | 图标的高度 |
| `SM_CXCURSOR` | 光标的宽度 |
| `SM_CYCURSOR` | 光标的高度 |
| `SM_CYMENU` | 菜单栏的高度 |
| `SM_CXFULLSCREEN` | 全屏模式下工作区的宽度 |
| `SM_CYFULLSCREEN` | 全屏模式下工作区的高度 |
| `SM_CYKANJIWINDOW` | 指示日语Kanji窗口的最小高度。该值始终为0。 |
| `SM_MOUSEPRESENT` | 非零值表示安装了鼠标,零值表示未安装鼠标 |
| `SM_CYVSCROLL` | 纵向滚动条的高度 |
| `SM_CXHSCROLL` | 横向滚动条的宽度 |
| `SM_DEBUG` | 非零值表示调试版本的Windows,零值表示零售版本的Windows |
| `SM_SWAPBUTTON` | 非零值表示鼠标的左右键被交换,零值表示鼠标左右键未被交换 |
| `SM_CXMIN` | 窗口最小化时的宽度 |
| `SM_CYMIN` | 窗口最小化时的高度 |
| `SM_CXSIZE` | 窗口大小的宽度 |
| `SM_CYSIZE` | 窗口大小的高度 |
| `SM_CXSIZEFRAME` | 窗口边框的宽度,包括调整边框 |
| `SM_CYSIZEFRAME` | 窗口边框的高度,包括调整边框 |
| `SM_CXMINTRACK` | 窗口最小化时的最小宽度 |
| `SM_CYMINTRACK` | 窗口最小化时的最小高度 |
| `SM_CXDOUBLECLK` | 双击水平拖动条的宽度 |
| `SM_CYDOUBLECLK` | 双击垂直拖动条的高度 |
| `SM_CXICONSPACING` | 水平图标之间的距离 |
| `SM_CYICONSPACING` | 垂直图标之间的距离 |
| `SM_MENUDROPALIGNMENT` | 非零值表示菜单栏可以向左对齐,零值表示菜单栏向左对齐。 |
| `SM_PENWINDOWS` | 非零值表示Windows运行在Pen计算机上,零值表示Windows未运行在Pen计算机上 |
| `SM_DBCSENABLED` | 非零值表示双字节字符集(DBCS)输入可以使用,零值表示DBCS输入不可用 |
| `SM_CMOUSEBUTTONS` | 鼠标按钮的数量 |
| `SM_SECURE` | 非零值表示计算机处于安全模式下,零值表示计算机未处于安全模式下 |
| `SM_CXEDGE` | 3D边缘宽度 |
| `SM_CYEDGE` | 3D边缘高度 |
| `SM_CXSMICON` | 小图标的宽度 |
| `SM_CYSMICON` | 小图标的高度 |
| `SM_CYSMCAPTION` | 带有三维边缘效果的小型标题栏的高度 |
| `SM_CXSMSIZE` | 小型窗口大小的宽度 |
| `SM_CYSMSIZE` | 小型窗口大小的高度 |
| `SM_CXMENUSIZE` | 菜单栏大小的宽度 |
| `SM_CYMENUSIZE` | 菜单栏大小的高度 |
| `SM_ARRANGE` | 非零值表示Windows已经安排了最小化窗口的位置,零值表示Windows尚未安排最小化窗口的位置 |
| `SM_CXMINIMIZED` | 窗口最小化时的宽度,单位为像素 |
| `SM_CYMINIMIZED` | 窗口最小化时的高度,单位为像素 |
| `SM_CXMAXTRACK` | 窗口最大化时的最大宽度 |
| `SM_CYMAXTRACK` | 窗口最大化时的最大高度 |
| `SM_CXMAXIMIZED` | 窗口最大化时的宽度,单位为像素 |
| `SM_CYMAXIMIZED` | 窗口最大化时的高度,单位为像素 |
| `SM_NETWORK` | 非零值表示Windows运行在网络上,零值表示Windows未运行在网络上 |
| `SM_CLEANBOOT` | 非零值表示Windows已经启动,并且启动过程中没有加载设备驱动程序,零值表示Windows未以清洁启动方式启动 |
| `SM_CXDRAG` | 拖动操作时拖动图标的宽度 |
| `SM_CYDRAG` | 拖动操作时拖动图标的高度 |
| `SM_SHOWSOUNDS` | 非零值表示Windows启动声音,零值表示Windows未启动声音 |
| `SM_CXMENUCHECK` | 菜单栏中菜单项旁边的选中框的宽度 |
| `SM_CYMENUCHECK` | 菜单栏中菜单项旁边的选中框的高度 |
| `SM_SLOWMACHINE` | 非零值表示Windows运行在较慢的计算机上,零值表示Windows未运行在较慢的计算机上 |
| `SM_MIDEASTENABLED` | 非零值表示Windows启用了中东语言支持,零值表示Windows未启用中东语言支持 |
`GetSystemMetrics`函数的返回值根据所请求的系统度量值或配置设置而异。通常,返回值是度量值或配置设置的整数值。但是,如果请求的系统度量值或配置设置无法检索,则返回0。
例如,如果您想要检查Windows计算机是否正在远程会话(锁定屏幕),可以使用以下代码:
```c++
BOOL isLocked = GetSystemMetrics(SM_REMOTESESSION);
if (isLocked) {
// 计算机处于锁定状态
} else {
// 计算机未被锁定
}
```
在上面的代码中,`GetSystemMetrics`函数将返回非零值表示计算机处于锁定状态,否则返回零表示计算机未被锁定。
阅读全文