Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

252
Vistas
Cómo detectar el modo tableta

Estoy usando el siguiente código para detectar si un usuario está en modo tableta o no. Estoy en una Surface Pro y cuando desacoplo el teclado y convierto la PC en una tableta, IsTabletMode devuelve verdadero (lo que debería). Cuando uso el botón "Modo de tableta" sin desacoplar la pantalla, IsTabletMode siempre devuelve falso. ¿Alguien ha experimentado esto y cómo puedo resolverlo?

 /* * Credit to Cheese Lover * Retrieved From: http://stackoverflow.com/questions/31153664/how-can-i-detect-when-window-10-enters-tablet-mode-in-a-windows-forms-applicatio */ public static class TabletPCSupport { private static readonly int SM_CONVERTIBLESLATEMODE = 0x2003; private static readonly int SM_TABLETPC = 0x56; private Boolean isTabletPC = false; public Boolean SupportsTabletMode { get { return isTabletPC; }} public Boolean IsTabletMode { get { return QueryTabletMode(); } } static TabletPCSupport () { isTabletPC = (GetSystemMetrics(SM_TABLETPC) != 0); } [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "GetSystemMetrics")] private static extern int GetSystemMetrics (int nIndex); private static Boolean QueryTabletMode () { int state = GetSystemMetrics(SM_CONVERTIBLESLATEMODE); return (state == 0) && isTabletPC; } }
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Edición 2: SM_TABLETPC solo es compatible con Windows XP Tablet PC Edition y Windows Vista. No parece haber ninguna referencia a Windows 10 aquí: https://msdn.microsoft.com/en-us/library/windows/desktop/ms700675(v=vs.85).aspx

Puede usar esto: GetSystemMetrics(SM_CONVERTIBLESLATEMODE). Un "0" devuelto significa que está en modo tableta. Un "1" devuelto significa que está en modo sin tableta. https://software.intel.com/en-us/articles/how-to-write-a-2-in-1-aware-application

¿Puedes reemplazar el método QueryTabletMode con esto:

 private static Boolean QueryTabletMode () { int state = GetSystemMetrics(SM_CONVERTIBLESLATEMODE); return (state == 0); }

Editar: es posible que deba verificar esto periódicamente ya que no hay ningún evento para ver si el modo de tableta de la PC estaba activado

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda