【发布时间】:2012-08-08 22:17:38
【问题描述】:
我有一个全屏 DirectX 桌面应用程序,并且希望在用户点击我的游戏中的文本框时显示屏幕键盘。在全屏模式下有没有办法做到这一点?
【问题讨论】:
-
有什么办法可以隐藏键盘吗?
标签: directx touch windows-8 multi-touch
我有一个全屏 DirectX 桌面应用程序,并且希望在用户点击我的游戏中的文本框时显示屏幕键盘。在全屏模式下有没有办法做到这一点?
【问题讨论】:
标签: directx touch windows-8 multi-touch
执行 osk.exe 会弹出更老式的屏幕键盘。 执行
会弹出 Windows 8 触摸键盘C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe
我只是想通了,因为我正在开发一个全屏桌面应用程序,该应用程序在没有连接键盘的平板电脑上运行。
塞维林。
【讨论】:
与 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";
}
【讨论】:
如果是桌面应用,您可能需要为osk.exe 调用ShellExecute。
如果它是 Metro 应用程序,则您无法从应用程序本身调用 SIP。根据MSDN docs:
这意味着应用程序不能以编程方式调用触摸 键盘通过焦点的操作。过去这里的大罪魁祸首 是网页——其中许多默认设置焦点在
【讨论】:
您可以很容易地展示 Windows 8 触摸键盘:
http://brianlagunas.com/showing-windows-8-touch-keyboard-wpf/
【讨论】: