2012-08-08 9 views

Respuesta

17

Ejecución osk.exe emergerá el más antiguo teclado en pantalla. El teclado táctil de Windows 8 se abrirá mediante la ejecución de

C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe 

acabo cuenta de eso, ya estoy trabajando en una aplicación de escritorio de pantalla completa que se ejecuta en un PC tableta sin teclado conectado.

Severin.

+0

Estaba buscando una mejor manera de hacerlo, pero este parece ser el único método razonable que realmente funciona. – IDWMaster

+0

Ah, cómo me encanta Windows. ¡Pero al menos esto funciona! – chowey

+0

¿Y cómo lo ocultas? – ali

1

Si se trata de una aplicación de escritorio, es posible que necesite invocar ShellExecute para osk.exe.

Si se trata de una aplicación Metro, no puede invocar el SIP desde la propia aplicación. De acuerdo con la MSDN docs:

Esto significa que las aplicaciones no pueden invocar mediante programación el toque teclado a través de la manipulación del foco. Grandes culpables aquí en el pasado han sido páginas web, muchos de ellos se centran por defecto fijado en

3

La misma respuesta que Severin Stampler pero con el fin de encontrar el camino correcto en C# que utilizo:

var path = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + @"\Microsoft Shared\ink\TabTip.exe"; 

if (!File.Exists(path)) 
{ 
    // older windows versions 
    path = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\osk.exe"; 
} 
+0

Cuando está ejecutando una aplicación de 32 bits, TabTip.exe no se encontrará en un sistema de 64 bits. GetFolderPath le dará la carpeta "Archivos de programa (x86)", tabTip.exe allí se llama "TabTip32.exe" – Zuppa

Cuestiones relacionadas