我通过registry项更改了默认的系统文件夹图标
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;
我可以更改registry值,但问题是我需要重新启动操作系统才能生效。
要解决这个问题,我试过了
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
和:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
它适用于WinXP,但不适用于Win7。
我怎样才能解决它在Win7上?
尝试从任务管理器“结束任务”进程“explorer.exe”
并再次启动(运行 – > explorer.exe),
如果通过这个过程,你可以看到更新的图标,尝试以编程方式执行此操作,以便不必重新启动。