WPF 启动屏幕键盘

在Windows平板模式下,系统有时无法自动显示屏幕键盘。本文介绍如何通过代码在WPF应用中手动触发屏幕键盘。对于Win10版本小于10.0.14393,通过TabTip.exe启动;大于等于该版本则使用COM接口。同时提供了判断和控制屏幕键盘状态的方法。作者还分享了自己的博客和职业技术学院,欢迎交流。
摘要由CSDN通过智能技术生成

在 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
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值