C#修改注册表实现与文件关联后如何使图标立即生效?

时间:2022-09-05 07:48:06
项目中有一个flash播放器,调用的组件实现flash播放,在系统设置中可以设置关联.swf文件,通过修改注册表可以实现功能,关联之后swf文件图标并不是立即变成我们播放器的图标,而是在重启系统之后就变了


如何让它立即生效呢?我看其它有些播放器都是在设置文件关联应用之后桌面就会刷新一下,然后所有的图标就都更新了,请问这是如何实现的?

我在google里找了有重建标标缓存的方法,但是还是不行,桌面不会刷新,又有人说要重启explorer.exe

5 个解决方案

#1


额,是啊,我也只能重启 Explorer 了,还没有发现好的刷新桌面的方法........
关注.[align=center]*********************************************************** 
                  欢迎使用 CSDN 小秘书
               CSDN 小秘书
***********************************************************[/align]

#2


引用楼主 hjl425 的回复:
项目中有一个flash播放器,调用的组件实现flash播放,在系统设置中可以设置关联.swf文件,通过修改注册表可以实现功能,关联之后swf文件图标并不是立即变成我们播放器的图标,而是在重启系统之后就变了


如何让它立即生效呢?我看其它有些播放器都是在设置文件关联应用之后桌面就会刷新一下,然后所有的图标就都更新了,请问这是如何实现的?

我在google里找了有重建标标缓存的方法,但是……

是的,很多软件比如Windows优化大师都是通过重启资源管理器(explorer.exe)来达到刷新的目的的。

#3


已经解决了,不是重启explorer.exe,一段代码搞定:SHChangeNotify(0x8000000, 0, IntPtr.Zero, IntPtr.Zero);

#4


分析不错

#5


麻烦你详细解释一下SHChangeNotify(0x8000000, 0, IntPtr.Zero, IntPtr.Zero);

#1


额,是啊,我也只能重启 Explorer 了,还没有发现好的刷新桌面的方法........
关注.[align=center]*********************************************************** 
                  欢迎使用 CSDN 小秘书
               CSDN 小秘书
***********************************************************[/align]

#2


引用楼主 hjl425 的回复:
项目中有一个flash播放器,调用的组件实现flash播放,在系统设置中可以设置关联.swf文件,通过修改注册表可以实现功能,关联之后swf文件图标并不是立即变成我们播放器的图标,而是在重启系统之后就变了


如何让它立即生效呢?我看其它有些播放器都是在设置文件关联应用之后桌面就会刷新一下,然后所有的图标就都更新了,请问这是如何实现的?

我在google里找了有重建标标缓存的方法,但是……

是的,很多软件比如Windows优化大师都是通过重启资源管理器(explorer.exe)来达到刷新的目的的。

#3


已经解决了,不是重启explorer.exe,一段代码搞定:SHChangeNotify(0x8000000, 0, IntPtr.Zero, IntPtr.Zero);

#4


分析不错

#5


麻烦你详细解释一下SHChangeNotify(0x8000000, 0, IntPtr.Zero, IntPtr.Zero);