![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление окна [D6, Win95/98, WinME]
Felix_the_cat © (2003-03-29 04:44:00)Такой вопрос:
Из своей программы меняю у папки иконку, но обновление происходит только, когда я перехожу в окно Explorer"a и нажимаю F5. Пробовал и SendMessage отправлять, и в реестре UpdateMode менял - не хочет оно обновляться само. Может, кто знает, как это лечится? Заранее спасибо.
Felix_the_cat (2003-03-30 13:04:00) [1]Огромное спасибо, Almaz - всё прекрасно работает.
Almaz (2003-03-30 04:59:00) [2]Попробуйте так:
procedure TForm1.Button1Click(Sender: TObject);
var
Save: String;
Dummy: Cardinal;
begin
with TRegistry.Create do
try
RootKey := HKEY_CURRENT_USER;
if not OpenKey("Control Panel\Desktop\WindowMetrics", FALSE) then Abort;
Save := ReadString("Shell Icon size");
if Save = "" then Abort;
WriteString("Shell Icon size", IntToStr(StrToInt(Save) - 1));
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 10000, Dummy);
WriteString("Shell Icon size", Save);
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 10000, Dummy);
finally
Free;
end;
end;
Удачи.