Compartir a través de


Función GetSystemMetrics (winuser.h)

Recupera la configuración del sistema o la métrica del sistema especificada.

Tenga en cuenta que todas las dimensiones recuperadas por GetSystemMetrics están en píxeles.

Sintaxis

int GetSystemMetrics(
  [in] int nIndex
);

Parámetros

[in] nIndex

Tipo: int

Parámetro de configuración o métrica del sistema que se va a recuperar. Este parámetro puede ser uno de los valores siguientes. Tenga en cuenta que todos los valores de SM_CX* son anchos y todos los valores SM_CY* son alturas. Tenga en cuenta también que todas las configuraciones diseñadas para devolver datos booleanos representan TRUE como cualquier valor distinto de cero y FALSE como un valor cero.

Valor Significado
SM_ARRANGE
56
Marcas que especifican cómo el sistema organizó las ventanas minimizadas. Para obtener más información, vea la sección Comentarios de este tema.
SM_CLEANBOOT
67
Valor que especifica cómo se inicia el sistema:
  • 0 Arranque normal
  • 1 Arranque seguro por error
  • 2 Conmutación por error con arranque de red
Un arranque con seguridad por error (también denominado SafeBoot, modo seguro o arranque limpio) omite los archivos de inicio del usuario.
SM_CMONITORS
80
Número de monitores de visualización en un escritorio. Para obtener más información, vea la sección Comentarios de este tema.
SM_CMOUSEBUTTONS
43
Número de botones de un mouse o cero si no hay ningún mouse instalado.
SM_CONVERTIBLESLATEMODE
0x2003
Refleja el estado del portátil o el modo de pizarra, 0 para el modo de pizarra y distinto de cero en caso contrario. Cuando cambia esta métrica del sistema, el sistema envía un mensaje de difusión a través de WM_SETTINGCHANGE con "ConvertibleSlateMode" en el LPARAM. Tenga en cuenta que esta métrica del sistema no se aplica a los equipos de escritorio. En ese caso, use GetAutoRotationState.
SM_CXBORDER
5
Ancho de un borde de ventana, en píxeles. Esto equivale al valor de SM_CXEDGE para las ventanas con la apariencia 3D.
SM_CXCURSOR
13
Ancho nominal de un cursor, en píxeles.
SM_CXDLGFRAME
7
Este valor es el mismo que SM_CXFIXEDFRAME.
SM_CXDOUBLECLK
36
Ancho del rectángulo alrededor de la ubicación de un primer clic en una secuencia de doble clic, en píxeles. El segundo clic debe producirse dentro del rectángulo definido por SM_CXDOUBLECLK y SM_CYDOUBLECLK para que el sistema tenga en cuenta los dos clics con un doble clic. Los dos clics también deben producirse dentro de un tiempo especificado.

Para establecer el ancho del rectángulo de doble clic, llame a SystemParametersInfo con SPI_SETDOUBLECLKWIDTH.

SM_CXDRAG
68
Número de píxeles en cualquier lado de un punto hacia abajo del mouse que el puntero del mouse puede mover antes de que comience una operación de arrastre. Esto permite al usuario hacer clic y soltar el botón del mouse fácilmente sin iniciar involuntariamente una operación de arrastre. Si este valor es negativo, se resta de la izquierda del punto hacia abajo del mouse y se agrega a la derecha de él.
SM_CXEDGE
45
Ancho de un borde 3D, en píxeles. Esta métrica es el homólogo 3D de SM_CXBORDER.
SM_CXFIXEDFRAME
7
Grosor del marco alrededor del perímetro de una ventana que tiene un subtítulo pero no se puede cambiar de tamaño, en píxeles. SM_CXFIXEDFRAME es el alto del borde horizontal y SM_CYFIXEDFRAME es el ancho del borde vertical.

Este valor es el mismo que SM_CXDLGFRAME.

SM_CXFOCUSBORDER
83
Ancho de los bordes izquierdo y derecho del rectángulo de foco que dibuja DrawFocusRect . Este valor está en píxeles.

Windows 2000: Este valor no se admite.

SM_CXFRAME
32
Este valor es el mismo que SM_CXSIZEFRAME.
SM_CXFULLSCREEN
16
Ancho del área de cliente para una ventana de pantalla completa en el monitor de visualización principal, en píxeles. Para obtener las coordenadas de la parte de la pantalla que no está ocultada por la barra de tareas del sistema o por las barras de herramientas de escritorio de la aplicación, llame a la función SystemParametersInfo con el valor SPI_GETWORKAREA.
SM_CXHSCROLL
21
Ancho del mapa de bits de flecha en una barra de desplazamiento horizontal, en píxeles.
SM_CXHTHUMB
10
Ancho del cuadro de posición en una barra de desplazamiento horizontal, en píxeles.
SM_CXICON
11
Ancho grande del sistema de un icono, en píxeles. La función LoadIcon solo puede cargar iconos con las dimensiones que SM_CXICON y SM_CYICON especifica. Consulta Tamaños de icono para obtener más información.
SM_CXICONSPACING
38
Ancho de una celda de cuadrícula para los elementos de la vista de iconos grandes, en píxeles. Cada elemento se ajusta a un rectángulo de tamaño SM_CXICONSPACING SM_CYICONSPACING cuando se organiza. Este valor siempre es mayor o igual que SM_CXICON.
SM_CXMAXIMIZED
61
Ancho predeterminado, en píxeles, de una ventana de nivel superior maximizada en el monitor de visualización principal.
SM_CXMAXTRACK
59
Ancho máximo predeterminado de una ventana que tiene un subtítulo y bordes de tamaño, en píxeles. Esta métrica hace referencia a todo el escritorio. El usuario no puede arrastrar el marco de la ventana a un tamaño mayor que estas dimensiones. Una ventana puede invalidar este valor procesando el mensaje WM_GETMINMAXINFO .
SM_CXMENUCHECK
71
Ancho del mapa de bits de marca de verificación de menú predeterminado, en píxeles.
SM_CXMENUSIZE
54
Ancho de los botones de la barra de menús, como el botón de cierre de la ventana secundaria que se usa en la interfaz de varios documentos, en píxeles.
SM_CXMIN
28
Ancho mínimo de una ventana, en píxeles.
SM_CXMINIMIZED
57
Ancho de una ventana minimizada, en píxeles.
SM_CXMINSPACING
47
Ancho de una celda de cuadrícula para una ventana minimizada, en píxeles. Cada ventana minimizada se ajusta a un rectángulo de este tamaño cuando se organiza. Este valor siempre es mayor o igual que SM_CXMINIMIZED.
SM_CXMINTRACK
34
Ancho mínimo de seguimiento de una ventana, en píxeles. El usuario no puede arrastrar el marco de la ventana a un tamaño menor que estas dimensiones. Una ventana puede invalidar este valor procesando el mensaje WM_GETMINMAXINFO .
SM_CXPADDEDBORDER
92
Cantidad de relleno de borde para las ventanas con subtítulos, en píxeles.

Windows XP/2000: Este valor no se admite.

SM_CXSCREEN
0
Ancho de la pantalla del monitor de visualización principal, en píxeles. Este es el mismo valor obtenido llamando a GetDeviceCaps de la siguiente manera: GetDeviceCaps( hdcPrimaryMonitor, HORZRES).
SM_CXSIZE
30
Ancho de un botón en una ventana subtítulo o barra de título, en píxeles.
SM_CXSIZEFRAME
32
Grosor del borde de ajuste de tamaño alrededor del perímetro de una ventana que se puede cambiar de tamaño, en píxeles. SM_CXSIZEFRAME es el ancho del borde horizontal y SM_CYSIZEFRAME es el alto del borde vertical.

Este valor es el mismo que SM_CXFRAME.

SM_CXSMICON
49
Ancho pequeño del sistema de un icono, en píxeles. Los iconos pequeños suelen aparecer en los títulos de la ventana y en la vista de iconos pequeños. Consulta Tamaños de icono para obtener más información.
SM_CXSMSIZE
52
Ancho de pequeños botones de subtítulo, en píxeles.
SM_CXVIRTUALSCREEN
78
Ancho de la pantalla virtual, en píxeles. La pantalla virtual es el rectángulo delimitador de todos los monitores de visualización. La métrica SM_XVIRTUALSCREEN es las coordenadas del lado izquierdo de la pantalla virtual.
SM_CXVSCROLL
2
Ancho de una barra de desplazamiento vertical, en píxeles.
SM_CYBORDER
6
Alto de un borde de ventana, en píxeles. Esto equivale al valor de SM_CYEDGE para las ventanas con la apariencia 3D.
SM_CYCAPTION
4
Alto de un área de subtítulo, en píxeles.
SM_CYCURSOR
14
Alto nominal de un cursor, en píxeles.
SM_CYDLGFRAME
8
Este valor es el mismo que SM_CYFIXEDFRAME.
SM_CYDOUBLECLK
37
Alto del rectángulo alrededor de la ubicación de un primer clic en una secuencia de doble clic, en píxeles. El segundo clic debe producirse dentro del rectángulo definido por SM_CXDOUBLECLK y SM_CYDOUBLECLK para que el sistema tenga en cuenta los dos clics con un doble clic. Los dos clics también deben producirse dentro de un tiempo especificado.

Para establecer el alto del rectángulo de doble clic, llame a SystemParametersInfo con SPI_SETDOUBLECLKHEIGHT.

SM_CYDRAG
69
El número de píxeles por encima y por debajo de un punto hacia abajo que el puntero del mouse puede moverse antes de que comience una operación de arrastre. Esto permite al usuario hacer clic y soltar el botón del mouse fácilmente sin iniciar involuntariamente una operación de arrastre. Si este valor es negativo, se resta de encima del punto hacia abajo del mouse y se agrega debajo de él.
SM_CYEDGE
46
Alto de un borde 3D, en píxeles. Este es el homólogo 3D de SM_CYBORDER.
SM_CYFIXEDFRAME
8
Grosor del marco alrededor del perímetro de una ventana que tiene un subtítulo pero no se puede cambiar de tamaño, en píxeles. SM_CXFIXEDFRAME es el alto del borde horizontal y SM_CYFIXEDFRAME es el ancho del borde vertical.

Este valor es el mismo que SM_CYDLGFRAME.

SM_CYFOCUSBORDER
84
Alto de los bordes superior e inferior del rectángulo de foco dibujado por DrawFocusRect. Este valor está en píxeles.

Windows 2000: Este valor no se admite.

SM_CYFRAME
33
Este valor es el mismo que SM_CYSIZEFRAME.
SM_CYFULLSCREEN
17
Alto del área de cliente de una ventana de pantalla completa en el monitor de visualización principal, en píxeles. Para obtener las coordenadas de la parte de la pantalla no ocultas por la barra de tareas del sistema o por las barras de herramientas de escritorio de la aplicación, llame a la función SystemParametersInfo con el valor SPI_GETWORKAREA.
SM_CYHSCROLL
3
Alto de una barra de desplazamiento horizontal, en píxeles.
SM_CYICON
12
Alto grande del sistema de un icono, en píxeles. La función LoadIcon solo puede cargar iconos con las dimensiones que SM_CXICON y SM_CYICON especifica. Consulta Tamaños de icono para obtener más información.
SM_CYICONSPACING
39
Alto de una celda de cuadrícula para los elementos de la vista de iconos grandes, en píxeles. Cada elemento se ajusta a un rectángulo de tamaño SM_CXICONSPACING SM_CYICONSPACING cuando se organiza. Este valor siempre es mayor o igual que SM_CYICON.
SM_CYKANJIWINDOW
18
Para las versiones del juego de caracteres de doble byte del sistema, este es el alto de la ventana Kanji en la parte inferior de la pantalla, en píxeles.
SM_CYMAXIMIZED
62
Alto predeterminado, en píxeles, de una ventana de nivel superior maximizada en el monitor de visualización principal.
SM_CYMAXTRACK
60
Alto máximo predeterminado de una ventana que tiene un subtítulo y bordes de tamaño, en píxeles. Esta métrica hace referencia a todo el escritorio. El usuario no puede arrastrar el marco de la ventana a un tamaño mayor que estas dimensiones. Una ventana puede invalidar este valor procesando el mensaje WM_GETMINMAXINFO .
SM_CYMENU
15
Alto de una barra de menús de una sola línea, en píxeles.
SM_CYMENUCHECK
72
Alto del mapa de bits de marca de verificación de menú predeterminado, en píxeles.
SM_CYMENUSIZE
55
Alto de los botones de la barra de menús, como el botón de cierre de la ventana secundaria que se usa en la interfaz de varios documentos, en píxeles.
SM_CYMIN
29
Alto mínimo de una ventana, en píxeles.
SM_CYMINIMIZED
58
Alto de una ventana minimizada, en píxeles.
SM_CYMINSPACING
48
Alto de una celda de cuadrícula para una ventana minimizada, en píxeles. Cada ventana minimizada se ajusta a un rectángulo de este tamaño cuando se organiza. Este valor siempre es mayor o igual que SM_CYMINIMIZED.
SM_CYMINTRACK
35
Alto mínimo de seguimiento de una ventana, en píxeles. El usuario no puede arrastrar el marco de la ventana a un tamaño menor que estas dimensiones. Una ventana puede invalidar este valor procesando el mensaje WM_GETMINMAXINFO .
SM_CYSCREEN
1
Alto de la pantalla del monitor de pantalla principal, en píxeles. Este es el mismo valor obtenido llamando a GetDeviceCaps de la siguiente manera: GetDeviceCaps( hdcPrimaryMonitor, VERTRES).
SM_CYSIZE
31
Alto de un botón en una ventana subtítulo o barra de título, en píxeles.
SM_CYSIZEFRAME
33
Grosor del borde de ajuste de tamaño alrededor del perímetro de una ventana que se puede cambiar de tamaño, en píxeles. SM_CXSIZEFRAME es el ancho del borde horizontal y SM_CYSIZEFRAME es el alto del borde vertical.

Este valor es el mismo que SM_CYFRAME.

SM_CYSMCAPTION
51
Alto de un pequeño subtítulo, en píxeles.
SM_CYSMICON
50
Alto pequeño del sistema de un icono, en píxeles. Los iconos pequeños suelen aparecer en los títulos de la ventana y en la vista de iconos pequeños. Consulta Tamaños de icono para obtener más información.
SM_CYSMSIZE
53
Alto de botones pequeños subtítulo, en píxeles.
SM_CYVIRTUALSCREEN
79
Alto de la pantalla virtual, en píxeles. La pantalla virtual es el rectángulo delimitador de todos los monitores de visualización. La métrica SM_YVIRTUALSCREEN es las coordenadas de la parte superior de la pantalla virtual.
SM_CYVSCROLL
20
Alto del mapa de bits de flecha en una barra de desplazamiento vertical, en píxeles.
SM_CYVTHUMB
9
Alto del cuadro de posición en una barra de desplazamiento vertical, en píxeles.
SM_DBCSENABLED
42
Distinto de cero si User32.dll admite DBCS; de lo contrario, 0.
SM_DEBUG
22
Distinto de cero si se instala la versión de depuración de User.exe; de lo contrario, 0.
SM_DIGITIZER
94
Distinto de cero si el sistema operativo actual es Windows 7 o Windows Server 2008 R2 y se inicia el servicio de entrada de PC tableta; de lo contrario, 0. El valor devuelto es una máscara de bits que especifica el tipo de entrada del digitalizador compatible con el dispositivo. Para obtener más información, vea la sección Comentarios.

Windows Server 2008, Windows Vista y Windows XP/2000: Este valor no se admite.

SM_IMMENABLED
82
Distinto de cero si el Administrador de métodos de entrada o las características del método de entrada Editor están habilitadas; en caso contrario, 0.

SM_IMMENABLED indica si el sistema está listo para usar un IME basado en Unicode en una aplicación Unicode. Para asegurarse de que un IME dependiente del idioma funciona, compruebe SM_DBCSENABLED y la página de códigos ANSI del sistema. De lo contrario, es posible que la conversión ANSI a Unicode no se realice correctamente, o es posible que algunos componentes como fuentes o configuraciones del Registro no estén presentes.

SM_MAXIMUMTOUCHES
95
Distinto de cero si hay digitalizadores en el sistema; de lo contrario, 0.

SM_MAXIMUMTOUCHES devuelve el máximo agregado del número máximo de contactos admitidos por cada digitalizador del sistema. Si el sistema solo tiene digitalizadores táctiles únicos, el valor devuelto es 1. Si el sistema tiene digitalizadores multitáctil, el valor devuelto es el número de contactos simultáneos que puede proporcionar el hardware.

Windows Server 2008, Windows Vista y Windows XP/2000: Este valor no se admite.

SM_MEDIACENTER
87
Distinto de cero si el sistema operativo actual es Windows XP, Media Center Edition, 0 si no es así.
SM_MENUDROPALIGNMENT
40
Distinto de cero si los menús desplegables están alineados a la derecha con el elemento de barra de menús correspondiente; 0 si los menús están alineados a la izquierda.
SM_MIDEASTENABLED
74
Distinto de cero si el sistema está habilitado para los idiomas hebreo y árabe, 0 si no es así.
SM_MOUSEPRESENT
19
Distinto de cero si se instala un mouse; de lo contrario, 0. Este valor rara vez es cero, debido a la compatibilidad con ratones virtuales y porque algunos sistemas detectan la presencia del puerto en lugar de la presencia de un mouse.
SM_MOUSEHORIZONTALWHEELPRESENT
91
Distinto de cero si se instala un mouse con una rueda de desplazamiento horizontal; de lo contrario, 0.
SM_MOUSEWHEELPRESENT
75
Distinto de cero si se instala un mouse con una rueda de desplazamiento vertical; de lo contrario, 0.
SM_NETWORK
63
El bit menos significativo se establece si hay una red presente; de lo contrario, se borra. Los demás bits están reservados para uso futuro.
SM_PENWINDOWS
41
Distinto de cero si se instalan las extensiones de Microsoft Windows para pen computing; cero en caso contrario.
SM_REMOTECONTROL
0x2001
Esta métrica del sistema se usa en un entorno de Terminal Services para determinar si la sesión actual de Terminal Server se está controlando de forma remota. Su valor es distinto de cero si la sesión actual se controla de forma remota; de lo contrario, 0.

Puede usar herramientas de administración de terminal Services como Terminal Services Manager (tsadmin.msc) y shadow.exe para controlar una sesión remota. Cuando una sesión se controla de forma remota, otro usuario puede ver el contenido de esa sesión e interactuar con ella.

SM_REMOTESESSION
0x1000
Esta métrica del sistema se usa en un entorno de Terminal Services. Si el proceso de llamada está asociado a una sesión de cliente de Terminal Services, el valor devuelto es distinto de cero. Si el proceso de llamada está asociado a la sesión de consola de Terminal Services, el valor devuelto es 0. Windows Server 2003 y Windows XP: La sesión de consola no es necesariamente la consola física. Para obtener más información, vea WTSGetActiveConsoleSessionId.
SM_SAMEDISPLAYFORMAT
81
Distinto de cero si todos los monitores de pantalla tienen el mismo formato de color; de lo contrario, 0. Dos pantallas pueden tener la misma profundidad de bits, pero formatos de color diferentes. Por ejemplo, los píxeles rojo, verde y azul se pueden codificar con diferentes números de bits, o esos bits se pueden ubicar en diferentes lugares en un valor de color de píxel.
SM_SECURE
44
Esta métrica del sistema debe omitirse; siempre devuelve 0.
SM_SERVERR2
89
Número de compilación si el sistema es Windows Server 2003 R2; de lo contrario, 0.
SM_SHOWSOUNDS
70
Distinto de cero si el usuario requiere que una aplicación presente información visualmente en situaciones en las que de otro modo presentaría la información únicamente en forma audible; de lo contrario, 0.
SM_SHUTTINGDOWN
0x2000
Distinto de cero si la sesión actual se está cerrando; de lo contrario, 0.

Windows 2000: Este valor no se admite.

SM_SLOWMACHINE
73
Distinto de cero si el equipo tiene un procesador de gama baja (lento); de lo contrario, 0.
SM_STARTER
88
Distinto de cero si el sistema operativo actual es Windows 7 Starter Edition, Windows Vista Starter o Windows XP Starter Edition; de lo contrario, 0.
SM_SWAPBUTTON
23
Distinto de cero si se intercambian los significados de los botones izquierdo y derecho del mouse; de lo contrario, 0.
SM_SYSTEMDOCKED
0x2004
Refleja el estado del modo de acoplamiento, 0 para modo no acoplado y distinto de cero. Cuando cambia esta métrica del sistema, el sistema envía un mensaje de difusión a través de WM_SETTINGCHANGE con "SystemDockMode" en el LPARAM.
SM_TABLETPC
86
Distinto de cero si el sistema operativo actual es la edición windows XP Tablet PC o si el sistema operativo actual es Windows Vista o Windows 7 y se inicia el servicio de entrada de pc tableta; de lo contrario, 0. La configuración de SM_DIGITIZER indica el tipo de entrada del digitalizador compatible con un dispositivo que ejecuta Windows 7 o Windows Server 2008 R2. Para obtener más información, vea la sección Comentarios.
SM_XVIRTUALSCREEN
76
Coordenadas del lado izquierdo de la pantalla virtual. La pantalla virtual es el rectángulo delimitador de todos los monitores de pantalla. La métrica SM_CXVIRTUALSCREEN es el ancho de la pantalla virtual.
SM_YVIRTUALSCREEN
77
Coordenadas de la parte superior de la pantalla virtual. La pantalla virtual es el rectángulo delimitador de todos los monitores de pantalla. La métrica SM_CYVIRTUALSCREEN es el alto de la pantalla virtual.

Valor devuelto

Tipo: int

Si la función se ejecuta correctamente, el valor devuelto es la métrica del sistema solicitada o la configuración.

Si se produce un error en la función, el valor devuelto es 0. GetLastError no proporciona información de error extendida.

Comentarios

Las métricas del sistema pueden variar de la pantalla que se va a mostrar.

GetSystemMetrics(SM_CMONITORS) solo cuenta monitores de visualización visibles. Esto es diferente de EnumDisplayMonitors, que enumera los monitores de visualización visibles y los pseudo-monitores invisibles asociados a los controladores de creación de reflejo. Un pseudo-monitor invisible está asociado a un pseudo-dispositivo que se usa para reflejar el dibujo de la aplicación con fines de comunicación remota u otros fines.

El valor de SM_ARRANGE especifica cómo el sistema organiza las ventanas minimizadas y consta de una posición inicial y una dirección. La posición inicial puede ser uno de los valores siguientes.

Valor Significado
ARW_BOTTOMLEFT Comience en la esquina inferior izquierda de la pantalla. Posición predeterminada.
ARW_BOTTOMRIGHT Comience en la esquina inferior derecha de la pantalla. Equivalente a ARW_STARTRIGHT.
ARW_TOPLEFT Comience en la esquina superior izquierda de la pantalla. Equivalente a ARW_STARTTOP.
ARW_TOPRIGHT Comience en la esquina superior derecha de la pantalla. Equivalente a ARW_STARTTOP | SRW_STARTRIGHT.
 

La dirección en la que organizar las ventanas minimizadas puede ser uno de los valores siguientes.

Valor Significado
ARW_DOWN Organizar verticalmente, arriba abajo.
ARW_HIDE Oculte las ventanas minimizadas moviendolas fuera del área visible de la pantalla.
ARW_LEFT Organizar horizontalmente, de izquierda a derecha.
ARW_RIGHT Organizar horizontalmente, de derecha a izquierda.
ARW_UP Organizar verticalmente, inferior a superior.
 

La configuración de SM_DIGITIZER especifica el tipo de digitalizadores instalados en un dispositivo que ejecuta Windows 7 o Windows Server 2008 R2. El valor devuelto es una máscara de bits que especifica uno o varios de los valores siguientes.

Valor Significado
NID_INTEGRATED_TOUCH

0x01

El dispositivo tiene un digitalizador táctil integrado.
NID_EXTERNAL_TOUCH

0x02

El dispositivo tiene un digitalizador táctil externo.
NID_INTEGRATED_PEN

0x04

El dispositivo tiene un digitalizador de lápiz integrado.
NID_EXTERNAL_PEN

0x08

El dispositivo tiene un digitalizador de lápiz externo.
NID_MULTI_INPUT

0x40

El dispositivo admite varios orígenes de entrada del digitalizador.
NID_READY

0x80

El dispositivo está listo para recibir la entrada del digitalizador.
 

Esta API no es compatible con PPP y no debe usarse si el subproceso que realiza la llamada es compatible con PPP por monitor. Para obtener la versión compatible con PPP de esta API, consulte GetSystemMetricsForDPI. Para obtener más información sobre el reconocimiento de PPP, consulte la documentación de Valores altos de PPP de Windows.

Ejemplos

En el ejemplo siguiente se usa la función GetSystemMetrics para determinar si se instala un mouse y si se intercambian los botones del mouse. En el ejemplo también se usa la función SystemParametersInfo para recuperar el umbral y la velocidad del mouse. Muestra la información en la consola.

#include <windows.h>
#include <stdio.h>
#pragma comment(lib, "user32.lib")

void main()
{
   BOOL fResult;
   int aMouseInfo[3];
 
   fResult = GetSystemMetrics(SM_MOUSEPRESENT); 
 
   if (fResult == 0) 
      printf("No mouse installed.\n"); 
   else 
   { 
      printf("Mouse installed.\n");

      // Determine whether the buttons are swapped. 

      fResult = GetSystemMetrics(SM_SWAPBUTTON); 
 
      if (fResult == 0) 
         printf("Buttons not swapped.\n"); 
      else printf("Buttons swapped.\n");
 
      // Get the mouse speed and the threshold values. 
 
      fResult = SystemParametersInfo(
         SPI_GETMOUSE,  // get mouse information 
         0,             // not used 
         &aMouseInfo,   // holds mouse information 
         0);            // not used 

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-sysparams-ext-l1-1-0 (introducido en Windows 8)

Consulte también

EnumDisplayMonitors

GetSystemMetricsForDPI

SystemParametersInfo