【发布时间】:2012-09-13 23:38:15
【问题描述】:
我通过注册表项更改默认系统文件夹图标
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 上修复它?
【问题讨论】:
-
删除 IconCache.db 可以避免重启
-
我已尝试删除 IconCache.db。它不起作用
-
icl文件是图标库
-
我什至尝试翻译 TortoiseSVN 的 强制通知 方式,但没有成功。在
this question的回答中有所描述。 -
看看here。特别是sledgehammer approach。非常讨厌...
标签: windows delphi winapi registry