几个修改注册表后立即生效的刷新方法
来源:互联网 发布:list找出重复数据 编辑:程序博客网 时间:2024/05/21 14:53
每次修改注册表之后如果想要立即见到效果的话都要重启explorer真是相当让人不爽,网上对于此类回答基本上就是重启explorer和重启系统。
有很多功能,比如windows自身提供的一些设置选项,在用户进行了操作之后实际上也是操作的注册表,但是能够立即刷新而无须重启explorer(当然有些操作也是需要重启的)。那么也就是说肯定是有方法不用重启explorer就能实现立即生效的。
因为我也没有太多的时间来系统的研究这一整套方法,经过几天的研究也算是找到了几种可行的刷新机制。下面列出来几条既为了整理记录也为了能够抛砖引玉。
1. SystemParametersInfo函数。通过给第一个参数传入一个SET属性的参数可以实现部分系统刷新功能,例如:有一个小功能是设置win8窗口打开关闭时的动画效果,这个功能系统自带有设置选项,可以选择开启或者关闭,整个过程不需要重启explorer。具体实现方法就是修改了相应的注册表项后调用:SystemParametersInfo(SPI_SETANIMATION,sizeof(ANIMATIONINFO),&info,SPIF_SENDCHANGE); 其中info是一个ANIMATIONINFO结构体。
关于这个系统函数有大量的参数可以使用,在此就不多罗列了。
2. PostMessage/SendMessage函数。关于这俩函数肯定都很熟悉了,比如使用SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0)可以广播设置变更消息,在很多场合上很有用;另外,后来研究过一段时间模拟右键刷新桌面的功能,网上有人使用模拟F5按键消息的方法个人感觉不太靠谱,一方面可能容易被安全软件截获,另一方面还要考虑存在某些软件修改F5功能的情况。后来在网上查到发送41504的WM_COMMAND消息就可以完美模拟刷新桌面消息:PostMessage(HWND_BROADCAST,WM_COMMAND,41504,NULL)。但是对于刷新本身都无法实现即时生效的注册表修改依然帮不上忙。
3. 另外,SHChangeNotify函数也能实现一部分系统功能的刷新,但是由于在最近的项目上没有效果,就不细说了。
- 几个修改注册表后立即生效的刷新方法
- 修改注册表立即生效
- 注册表修改后快速生效的方法
- 更改注册表后立即生效
- 一个修改注册表后立即生效的源码. 跟组策略一样的效果
- windows 修改hosts 立即生效的方法
- 修改profile后立即生效
- c# 修改注册表立即刷新
- 让/etc/profile文件修改后立即生效方法
- 修改Windows环境变量后不重新启动使之立即生效的方法
- 修改Windows环境变量后不重新启动使之立即生效的方法
- 使环境变量修改后立即生效的解决办法
- InstallShield修改环境变量后不能立即生效的问题
- switchHosts!修改hosts后不能立即生效的问题
- 修改屏幕后立即刷新
- PHP修改后无法立即生效
- linux 配置文件修改后立即生效命令
- linux下修改.bash_profile立即生效的三种方法
- android listview 里面有imagebutton button 造成 item无法选中
- strlen
- PHP实现单例模式
- 神经网络学习笔记(三)
- strdup
- 几个修改注册表后立即生效的刷新方法
- 淘宝技术牛p博客整理
- OSB开发常用资料
- Linux 内核驱动固件加载方式
- strchr
- Thinkphp生成静态页面
- 关于Git的一点学习(一)
- 优秀前端学习资源汇总
- strcspn