|
|
|
Icon cache rebuilding with Delphi
How can I rebuild the 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;
...
|
Copyright © 2000-2022 Aha-Soft. All rights reserved.
|
|
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.
Toolbar Icon Set. A collection of practical and eye catching Windows icons representing all basic operations required for software development.
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.
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.
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.
|
|
|
|