如何在 C# 中更改鼠标的 DoubleClickSpeed?

Posted

技术标签:

【中文标题】如何在 C# 中更改鼠标的 DoubleClickSpeed?【英文标题】:How to change the DoubleClickSpeed for mouse in C#? 【发布时间】:2021-11-19 08:41:46 【问题描述】:

我需要以编程方式更改 DoubleClickSpeed。

到目前为止,我已经成功更改了注册表值:

 const string userRoot = "HKEY_CURRENT_USER";
 const string subkey1 = "Control Panel";
 const string subkey2 = "Mouse";
 const string keyName = userRoot + "\\" + subkey1 + "\\" + subkey2;

 Registry.SetValue(keyName, "DoubleClickSpeed", 900, RegistryValueKind.String);

此外,我可以通过检查 Windows 10 中的“鼠标属性”对话框来确认该值已更改:

我遇到的问题是,尽管注册表值已更改,但新的双击速度在我打开鼠标属性对话框并单击“确定”之前不会生效。我猜测关闭对话框的过程会强制 Windows 再次查找注册表值以使其处于活动状态。

有没有一种方法可以让 Windows 重新加载/查找 DoubleClickSpeed 值,而无需用户打开和关闭鼠标属性对话框?

【问题讨论】:

【参考方案1】:

啊,想通了。必须使用 SystemParametersInfo 并直接向 SPI_SETDOUBLECLICKTIME 发送消息。这完全避免了更改注册表的需要。

【讨论】:

以上是关于如何在 C# 中更改鼠标的 DoubleClickSpeed?的主要内容,如果未能解决你的问题,请参考以下文章

当鼠标悬停在控件的指定区域时如何更改鼠标光标?使用 c#

C# Winforms - 更改鼠标的光标图标

重金悬赏,C#中如何更改坐标系X, Y的变化方向

MFC:如何通过鼠标滚轮启用页面更改以进行打印预览?

如何在 .NET 单选按钮中获取 DoubleClick 事件?

从 DoubleClick、Web 应用程序而非 Windows 窗体上的 ListBox 获取选定值