如何使注册表更改的值在不退出的情况下生效?

如何使注册表更改的值在不退出的情况下生效?

如果我使用 cmd 手动更改注册表项值,它们将无法生效/更改,直到我重新启动/注销我的计算机。

例如。

reg ADD "HKEY_CURRENT_USER\Control Panel\Desktop" /v MouseWheelRouting /t REG_DWORD /d 2 /f

我必须重新启动/退出才能使更改生效

但我想找到一种方法让它们工作,而无需重新启动/退出我的计算机。

那么,有没有简单的方法可以实现这一点?使用 batch/cmd。

答案1

一般情况下,只要广播该消息就可以使这些新设置生效WM_SETTINGCHANGE

例如,在 AutoIt 中,你可以执行以下操作

#include <SendMessage.au3>
Dim Const $WM_SETTINGCHANGE = 0x001A
Local $hWnd = WinGetHandle("[CLASS:Shell_TrayWnd]")

If @error Then
    MsgBox(0, "", "An error occurred when trying to retrieve the window handle.")
    Exit
Else
    _SendMessage ($hWnd, $WM_SETTINGCHANGE)
EndIf

相关内容