我通过注册表项更改默认系统文件夹图标
Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons',True); Reg.WriteString('3','C:\MyIcon.icl,0'); finally RegFile.Free; end;
我可以更改注册表值,但问题是我需要重新启动操作系统才能使其生效.
要修复它,我试过:
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0);
和:
SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST,nil,nil);
它适用于WinXP,但不适用于Win7.
我怎样才能在Win7上修复它?
解决方法
尝试从任务管理器“结束任务”进程“explorer.exe”,
然后重新启动它(运行 – > explorer.exe),
如果通过此过程您可以看到更新的图标,请尝试以编程方式执行此操作,以便您不必重新启动.