文件夹图标更改不会生效

时间:2012-09-21 14:19:11

标签: windows delphi winapi 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;

我可以更改注册表值,但问题是我需要重新启动操作系统才能使其生效。

为了解决这个问题,我试过了:

SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);

和:

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);

它适用于WinXP但不适用于Win7。

如何在Win7上修复它?

1 个答案:

答案 0 :(得分:1)

尝试从任务管理器“结束任务”进程“explorer.exe”,

然后重新启动它(运行 - > explorer.exe),

如果通过此过程您可以看到更新的图标,请尝试以编程方式执行此操作,这样您就不必重新启动。