方法一:写段代码Category: System{Microsoft's Tweak UI has a feature 'rebuild icon cache now'.Windows then rebuilds its internal cache of icons.Unfortunately, there is no single API to do this.}usesRegistry;function RefreshScreenIcons : Boolean;constKEY_TYPE = HKEY_CURRENT_USER;KEY_NAME = 'Control Panel\Desktop\WindowMetrics';KEY_VALUE = 'Shell Icon Size';varReg: TRegistry;strDataRet, strDataRet2: string;procedure BroadcastChanges;varsuccess: DWORD;beginSendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,SPI_SETNONCLIENTMETRICS,0,SMTO_ABORTIFHUNG,10000,success);end;beginResult := False;Reg := TRegistry.Create;tryReg.RootKey := KEY_TYPE;// 1. open HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetricsif Reg.OpenKey(KEY_NAME, False) thenbegin// 2. Get the value for that keystrDataRet := Reg.ReadString(KEY_VALUE);Reg.CloseKey;if sDataRet <> '' thenbegin// 3. Convert sDataRet to a number and subtract 1,// convert back to a string, and write it to the registrysDataRet2 := IntToStr(StrToInt(strDataRet) - 1);if Reg.OpenKey(KEY_NAME, False) thenbeginReg.WriteString(KEY_VALUE, strDataRet2);Reg.CloseKey;// 4. because the registry was changed, broadcast// the fact passing SPI_SETNONCLIENTMETRICS,// with a timeout of 10000 milliseconds (10 seconds)BroadcastChanges;// 5. the desktop will have refreshed with the// new (shrunken) icon size. Now restore things// back to the correct settings by again writing// to the registry and posing another message.if Reg.OpenKey(KEY_NAME, False) thenbeginReg.WriteString(KEY_VALUE, strDataRet);Reg.CloseKey;// 6. broadcast the change againBroadcastChanges;Result := True;end;end;end;end;finallyReg.Free;end;end;procedure TForm1.Button1Click(Sender: TObject);beginRefreshScreenIconsend;{The result is Window's erasing all its icons, and recalculating thembased on the registry settings.This means if you have changed a DefaultIcon key within the registry forsome application or file, Windows will display the new icon when therefresh is completed.Original source:www.mvps.org/vbnet/index.html?code/reg/screenrefresh.htmTranslated from VB by Thomas Stutz}编译执行。方法二:修改注册表:对于以前的Win版本,一个众所周知的KEY: HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer 下新建 "MaxCachedIcons" REG_SZ "8000" (8000应该够了 吧),这个KEY 在Win2003中可能是没有效果的。另一个KEY: HKCU \ Control Panel \ Desktop \ WindowMetrics 下的 Shell Icon Size 值放 大。如果修改有效,接下来重建Icon Cache:在显示属性中,如下图:然后增大icon的size,如32->33,apply后再恢复到原来的size,再次确定。source: http://www.blueidea.com/computer/system/2003/1175.asp