使用 WPF 应用设置 Windows 10 "Automatically show the touch keyboard"

Set Windows 10 "Automatically show the touch keyboard" with WPF app

我需要以编程方式 enable/disable Windows 10 中的 Automatically show the touch keyboard 选项和 WPF(不是 UWP),如图所示 here

我找不到任何东西。有没有我可以从 C# 使用的 API 或我可以修改为 enable/disable 的注册表项?

根据 this SO post,您可以通过隐藏代码启动屏幕键盘 (OSK):

    private void TextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        Process.Start("osk.exe");
    }

我用一个简单的文本框尝试并测试了它,效果很好。有 another post 抱怨 "Cannot start On-Screen Keyboard" 但没有明确的共识。

如果您需要注册表设置,似乎有一个,但可能不实用。注册表设置的详细信息 is in this post.

我最终使用 Process Monitor 中所述的 this 答案来检测在更改设置时修改了哪些注册表值。因此,对于 enable/disable Automatically show the touch keyboard 选项,您必须更改注册表值:

HKCU\Software\Microsoft\TabletTip.7\EnableDesktopModeAutoInvoke

用一个简单的命令你可以enable/disable这个:

reg add "HKCU\Software\Microsoft\TabletTip.7" /v EnableDesktopModeAutoInvoke /t REG_WORD /d 1 /f

只要在1和0之间改成enable/disable就可以了。