我正在注册表中编辑鼠标设置,但它们似乎什么都不做

时间:2015-07-09 14:50:37

标签: windows registry controlpanel

我制作了一个改变鼠标灵敏度的程序,就像使用控制面板一样。 更改是在注册表中进行的,HKEY_CURRENT_USER\Control Panel\Mouse处的密钥实际上已完成(我已从regedit.exe检查过它们),但鼠标的工作方式就好像没有进行更改一样。换句话说,更改不会产生任何影响,只有在您使用控制面板时才会发生。他们为什么不生效?

2 个答案:

答案 0 :(得分:1)

Windows注册表不是一直刷新的东西。您所做的更改将在当前用户(即其HKEY_CURRENT_USER的原因)之后再次登录,或者在您使用控制面板后说明,这将读取注册表。我不知道你的课程是用哪种语言写的,但是你应该看一下这个链接:" this post"

答案 1 :(得分:1)

通常,不支持直接调整注册表设置,尤其是在有用于调整设置的API时。在这种情况下,API为SystemParametersInfo。特别是,您需要使用SPI_SETMOUSESPEED作为uiAction参数的参数。

  

换句话说,更改不会产生任何影响,只有在您使用控制面板时才会发生。他们为什么不生效?

因为它通常比在注册表中设置值多一点。通常,在更改值之后必须发送通知,以便告知计算机上的所有其他软件删除任何缓存的值并将其替换为现在在注册表中的新值。在许多情况下,通知将采用广播消息的形式。

对于鼠标驱动程序设置,您可能需要使用SPIF_UPDATEINIFILE参数作为fWinIni参数。您可能还需要将其与SPIF_SENDCHANGE进行OR广播以广播WM_SETTINGCHANGE消息,但我不确定。