我想通过 regedit 更改 toast 通知显示时间。
这可以通过更改MessageDuration
此注册表项下的值来完成:
HKEY_CURRENT_USER\Control Panel\Accessibility
如果我通过控制面板更改此设置,将立即应用新设置。
但是,如果通过 regedit 更改此设置,除非我重新启动 Windows,否则不会应用新设置。
我怎么能在不重新启动的情况下做到这一点?
我想通过 regedit 更改 toast 通知显示时间。
这可以通过更改MessageDuration
此注册表项下的值来完成:
HKEY_CURRENT_USER\Control Panel\Accessibility
如果我通过控制面板更改此设置,将立即应用新设置。
但是,如果通过 regedit 更改此设置,除非我重新启动 Windows,否则不会应用新设置。
我怎么能在不重新启动的情况下做到这一点?
许多控制面板自定义设置旨在通过
SystemParametersInfo
Win32 功能进行更新。要更改通知消息的持续时间,可以使用SPI_SETMESSAGEDURATION
操作 (0x2017) 调用该函数。这是一个 PowerShell 脚本,它接受一个参数,以秒为单位指定所需的消息持续时间并应用设置更改:最后一个参数中的 3 设置
SPIF_UPDATEINIFILE
和SPIF_SENDCHANGE
标志,以便将新值写入注册表,并且所有应用程序都会收到设置更改通知。如果函数成功,则返回 1。要使用该脚本,请将其保存为 PS1 文件,例如
toasttime.ps1
. 然后,您可以从命令提示符调用它,如下所示:或者,如果您只想通过其他方式应用已在注册表中设置的任何持续时间,您可以使用从注册表中读取所需持续时间的脚本变体,而不是使用参数:
注销和登录就足够了。
或者您可以通过以下方式重新启动资源管理器:
explorer.exe
并选择“结束任务”,桌面将消失explorer
并单击确定