在 Windows 的平板模式下才能自动在获取键盘输入焦点时弹出屏幕键盘,但是 Windows 的屏幕键盘做的粗糙,有时候不会自动开启屏幕键盘,此时需要使用代码辅助
如果是非平板模式,以及系统没有检测到触摸,此时不一定能弹出屏幕键盘
在 Win10 版本小于 10.0.14393 时,可以通过启动 TabTip.exe 应用打开屏幕键盘。而在大于等于 10.0.14393 版本需要使用 COM 的方式
先来聊聊如何通过 TabTip.exe 应用打开屏幕键盘
默认的 TabTip.exe 应用将会放在 Program Files
文件夹下,可以通过如下代码拿到 Program Files
文件夹
var commonFilesPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles);
//程序集目标平台为X86时,获取到的是x86的Program Files,但TabTip.exe始终在Program Files目录下
if (commonFilesPath.Contains("Program Files (x86)"))
{
commonFilesPath = commonFilesPath.Replace("Program Files (x86)", "Program Files");
}
此时拿到应用路径可以使用下面代码
var tabTipPath = Path.Combine(commonFilesPath, @"microsoft shared\ink\TabTip.exe");
启动应用,启动之后需要等待一下,下面代码使用 Thread.Sleep(50)
等待,请小伙伴根据需要更改时间或更改为 Task.Delay 等。如果没有后续逻辑依赖键盘,那么可以删除 Thread.Sleep 的代码
var processStartInfo = new ProcessStartInfo