Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Вниз

Iconcache   Найти похожие ветки 

 
ricks   (2002-07-02 14:00) [0]

Неужели никто не знает, как обновить кэш значков! Люди, если знаете - напишите! Please


 
ricks   (2002-07-02 14:27) [1]

Наверно-ж есть какой-нибудь Message, или SystemParametersInfo, yнеобязательно-же удалять ShellIconChace и перезагружаться???


 
ФФФ   (2002-07-02 15:56) [2]

А зачем удалять? Можно просто перезагрузиться.
Есть программа AxIcons, в ней есть функция Rebuild Icon Cashe. И действительно работает! Значит точно это возможно, но как? Вопрос остается.


 
Death for...   (2002-07-02 18:41) [3]

А делается это так:

uses
Registry;

function RefreshScreenIcons : Boolean;
const
KEY_TYPE = HKEY_CURRENT_USER;
KEY_NAME = "Control Panel\Desktop\WindowMetrics";
KEY_VALUE = "Shell Icon Size";
var
Reg: TRegistry;
strDataRet, strDataRet2: string;

procedure BroadcastChanges;
var
success: DWORD;
begin
SendMessageTimeout(HWND_BROADCAST,
WM_SETTINGCHANGE,
SPI_SETNONCLIENTMETRICS,
0,
SMTO_ABORTIFHUNG,
10000,
success);
end;


begin
Result := False;
Reg := TRegistry.Create;
try
Reg.RootKey := KEY_TYPE;
// 1. open HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
if Reg.OpenKey(KEY_NAME, False) then
begin
// 2. Get the value for that key
strDataRet := Reg.ReadString(KEY_VALUE);
Reg.CloseKey;
if strDataRet <> "" then
begin
// 3. Convert sDataRet to a number and subtract 1,
// convert back to a string, and write it to the registry
strDataRet2 := IntToStr(StrToInt(strDataRet) - 1);
if Reg.OpenKey(KEY_NAME, False) then
begin
Reg.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) then
begin
Reg.WriteString(KEY_VALUE, strDataRet);
Reg.CloseKey;
// 6. broadcast the change again
BroadcastChanges;
Result := True;
end;
end;
end;
end;
finally
Reg.Free;
end;
end;

//Применение:
procedure TForm1.Button1Click(Sender: TObject);
begin
RefreshScreenIcons
end;




Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
14-95494
velk
2002-07-01 14:09
2002.07.29
Подскажите есть ли библиотека компонентов наподобие AfalinaSoft


4-95604
Yerba
2002-05-20 23:46
2002.07.29
Bitmap -> Icon


1-95373
nikoss
2002-07-15 15:04
2002.07.29
Ошибка при вызове процедуры


1-95289
Leny
2002-07-17 10:16
2002.07.29
Рисунок в StringGrid


1-95385
hooch
2002-07-16 08:03
2002.07.29
Фреймы в dll (D6, WinXP)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский