7

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

4

4 回答 4

17

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

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

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

塞维林。

于 2012-08-24T12:55:34.590 回答
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";
}
于 2013-05-28T09:55:22.403 回答
1

如果它是桌面应用程序,您可能需要调用ShellExecutefor osk.exe

如果它是 Metro 应用程序,则您无法从应用程序本身调用 SIP。根据MSDN 文档

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

于 2012-08-09T03:29:48.950 回答
1

您可以很容易地展示 Windows 8 触摸键盘:

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

于 2013-12-18T03:14:46.330 回答