修改后的注册表生效通常有三种方法
1、刷新。也就是说修改注册表后可以立即生效(一些修改是可以的)。
2、重起explorer进程。这也是通常替代重启的最简单的方法(适用绝大多数)。
3、重启。有一些修改是必须要重启计算机的,没有什么其他捷径可言(适用全部)。
1,刷新
a, SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0); //测试成功
更新环境变量使用的是:如果是通知系统中其他的应用程序去更新注册表,应该使用:
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT( "Environm ent "));
类似的可以将最后一个参数修改为对应的注册表键,参考MSDN中的
“WM_SETTINGCHANGE”。
b, SystemParametersInfo(SPI_SETCURSORS,0,NULL,SPIF_SENDCHANGE); //测试失败
网上查说这个SystemParametersInfo也可以,但我测试失败,没有隐藏,我再查查看
c, KillProcess 掉 explorer.exe 然后
再 Createprocess explorer.exe
2 重起explorer进程
a, tskill explorer 直接写入一个bat,之后运行测试成功
b, 在记事本里,输入以下内容,并保存为Reflash.BAT文件即可!
@echo off
taskkill /im explorer.exe /f
ping -n 2 127.0.0.1 > nul
start c:\windows\explorer.exe
这个BAT文件,会在双击后,自动结束“explorer进程”,然后又会新建。用这个简单的方法基本上可以解决日常注册表的修改!
3 重启
适用全部,肯定更新注册表
注册表方法,修改后,必须立即使注册表重新生效一下,否则没有效果