How to bring up the Windows 8 on-screen keyboard i

2019-03-20 14:36发布

I have a fullscreen DirectX desktop app, and would like to display the on-screen keyboard when the user taps a textbox in my game. Is there a way to do this while in fullscreen mode?

4条回答
男人必须洒脱
2楼-- · 2019-03-20 15:12

You can show the Windows 8 touch keyboard quite easily:

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

查看更多
Deceive 欺骗
3楼-- · 2019-03-20 15:22

Same answer as Severin Stampler but in order to find the correct path from c# I use:

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";
}
查看更多
我只想做你的唯一
4楼-- · 2019-03-20 15:23

Executing osk.exe will pop up the more old-fashioned on-screen keyboard. The Windows 8 touch keyboard will pop up by executing

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

I just figured that out, since I'm working on a fullscreen desktop app that is running on a tablet PC without keyboard attached.

Severin.

查看更多
老娘就宠你
5楼-- · 2019-03-20 15:30

If it is a desktop app, you might need to invoke ShellExecute for osk.exe.

If it is a Metro application, then you cannot invoke the SIP from the app itself. As per the MSDN docs:

This means that applications cannot programmatically invoke the touch keyboard via manipulation of focus. Big culprits here in the past have been webpages—many of them set focus by default in

查看更多
登录 后发表回答