使用C#更新WISP(Windows Ink服务平台)的注册表更改

时间:2012-10-02 04:31:05

标签: c# windows registry touch

我正在尝试在Windows 7或8上为我的WPF绘图应用程序启用/禁用触摸功能。

就我搜索而言,链接How to turn off all touch input at application, window or control level?为触摸功能状态提供了正确的注册表位置。

但是,它并没有受到影响,因为Windows系统可能无法确认更改。

在我的假设中,需要使用 SystemParametersInfo 刷新User32.dll才能在不重启的情况下进行更改。 但很难弄清楚如何做到这一点,因为我不知道哪个SPI_something与WISP有关。

还有其他方法还是可以帮我实现?

示例代码如下(非常类似于上面引用的StackOverflow链接)

            RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Wisp\Touch", true);
        if (regKey != null)
        {
            regKey.SetValue("TouchGate", 0x00000000); // Turn off touch.
            regKey.Close();

            // NOTIFY REGISTRY CHANGES TO WINDOWS
        }

1 个答案:

答案 0 :(得分:1)

问题的当前答案如何关闭应用程序,窗口或控件级别的所有触摸输入?还提供了一种使Windows重新读取注册表的方法。请参阅:the answer's internal static void Notify_SettingChange()方法。

SystemParametersInfo 中没有用于触控禁用的文档SPI_ *常量。此外,所有SPI_常量都与可访问性功能相关 - 而不是触摸等一般功能。