Logo Windows icon software company HomeDownloadsBuyContact  
Home
Products
Downloads
Order
Free Icons
Support
EnglishDeutsch - GermanРусский - RussianEspañol - SpanishFrançais - FrenchItaliano - Italian日本語 - JapaneseNederlands - Dutch中文(简体) - ChineseNorsk - Norwegian
Your name:
Your e-mail:

ASP image
Image Viewer
 All questions  Support  Press-releases  Our Products on CD

Rebuild icon cache from Delphi

How to rebuild Windows icon cache from Borland Delphi?

procedure RebuildIconCache;

....
const
  sr_WindowMetrics='Control Panel\Desktop\WindowMetrics\';
  sr_ShellIconSize='Shell Icon Size';

function  WindowsDir:string;
var
 buffer: array [0..255] of char;
begin
 GetWindowsDirectory(@Buffer,SizeOf(buffer));
 Result:=Buffer;
end;

Function UpdateAllWindowsCallback(WHandle : HWnd;
  Var Parm : Pointer) :
  Boolean; stdcall;
begin
 SendMessage(WHandle,WM_SETTINGCHANGE,0,0);
 Result:=True;
end;

Procedure UpdateAllWindows;
Begin
  EnumWindows(@UpdateAllWindowsCallback,
  WM_SETTINGCHANGE);
End;


function GetIconCacheFile:string;
begin
 Result:=getwindowspath+'ShellIconCache';
end;

procedure DeleteIconCache;
var
 sfile:string;
begin
 sfile:=GetIconCacheFile;
 if fileexists(sfile) then begin
  if deletefile(sfile)=false 
  then showmessage('Can not erase file: '+sfile);
 end;
 QueryRestartWindows;
end;


function RefreshActiveDesktop:boolean;
const
  CLSID_ActiveDesktop: TGUID 
  = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
  ActiveDesktop: IActiveDesktop;
begin
 try
  ActiveDesktop := CreateComObject(CLSID_ActiveDesktop)
    as IActiveDesktop;
  ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
  Result:=true;
 except
  Result:=false;
 end;
end;

procedure RefreshDesktop;
var
 wnd:THandle;
 fl:boolean;
begin
 fl:=RefreshActiveDesktop;
 if fl=false then begin
  wnd:=FindWindow('Progman', 'Program Manager');
  if wnd<>0 then SendMessage(wnd,WM_COMMAND,$A065,0)
  else UpdateAllWindows;
 end;
end;

procedure RebuildIconCache;
var
 news,olds:string;
 sz:integer;
begin
 Startwait;
 try
  deletefile(GetIconCacheFile);
  olds:=regreadstring(HKEY_CURRENT_USER,
    sr_WindowMetrics+sr_ShellIconSize);
  sz:=strtointdef(olds,32);
  inc(sz);
  news:=inttostr(sz);
  regwritestring(HKEY_CURRENT_USER,
    sr_WindowMetrics+sr_ShellIconSize,news);
  UpdateAllWindows;
  if olds='' then olds:='32';
  regwritestring(HKEY_CURRENT_USER,
    sr_WindowMetrics+sr_ShellIconSize,olds);
  UpdateAllWindows;
  RefreshDeskTop;
 finally
  StopWait;
 end;
end;

...



Icon editors
Icon IconLover is our pick. It allows you to design and edit all kinds of graphics required in the software development cycle, including icons, static and animated cursors and interface elements - all these graphics can now be designed in a single application.

Icon Business Icon Set will make your software and web products look more modern and attractive. File formats included into the set are Windows icons, GIF and PNG images.

Icon ArtIcons Pro is an advanced icon-specific utility for Windows. It supports ICO, BMP, PNG, GIF, PSD, XPM, XBM, WBMP, CUR and ANI image formats and allows you to manage icon libraries.

Icon ArtCursors allows you to find, create, edit, import and export cursors and manage cursor libraries. It supports static and animated cursors.

Icon Any to Icon converts icons and cursors into BMP, JPG, PNG, GIF, ICO, CUR and other formats. This wizard can find icons and make images for use on Web pages.