0

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

据我搜索,链接如何在应用程序、窗口或控件级别关闭所有触摸输入?为触摸功能状态提供注册表的正确位置。

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

在我的假设中,需要使用SystemParametersInfo刷新 User32.dll才能在不重新启动的情况下进行更改。但很难弄清楚如何做到这一点,因为我不知道哪个SPI_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
        }
4

1 回答 1

1

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

SystemParametersInfo中没有记录用于触摸禁用的 SPI_* 常量。此外,那里的所有 SPI_ 常量都与可访问性功能有关 - 而不是像触摸这样的一般功能。

于 2012-10-08T00:35:19.793 回答