如何在桌面应用程序中调出Windows 8屏幕键盘

时间:2012-08-08 22:17:39

标签: directx touch windows-8 multi-touch

我有一个全屏DirectX桌面应用程序,并希望在用户点击游戏中的文本框时显示屏幕键盘。有没有办法在全屏模式下执行此操作?

4 个答案:

答案 0 :(得分:17)

执行osk.exe会弹出更老式的屏幕键盘。 Windows 8触摸键盘将通过执行

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

我只是想通了,因为我正在开发一款在没有连接键盘的平板电脑上运行的全屏桌面应用。

塞韦林。

答案 1 :(得分:3)

与Severin Stampler相同的答案,但为了从c#找到正确的路径,我使用:

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";
}

答案 2 :(得分:1)

如果是桌面应用,您可能需要为ShellExecute调用osk.exe

如果是Metro应用程序,则无法从应用程序本身调用SIP。根据{{​​3}}:

  

这意味着应用程序无法以编程方式调用触摸   键盘通过操纵焦点。过去的罪魁祸首   是网页 - 其中许多人默认设置焦点

答案 3 :(得分:1)

您可以非常轻松地显示Windows 8触控键盘:

http://brianlagunas.com/showing-windows-8-touch-keyboard-wpf/