Re[4]: Обновление значков в explorerе
От: Peter K.  
Дата: 08.02.02 18:09
Оценка:
Здравствуйте SergH, Вы писали:

К сожалению на
SH>
SH>SHChangeNotify(SHCNE_GLOBALEVENTS, SHCNF_DWORD, 0, 0);
SH>

не реагирует.

В чем собс-но суть проблемы:

В некоторых ситуациях в оболочке Windows "портятся" значки
(искажаются, заменяются на неправильные и т.п.).

(В качестве примера: такое происходит иногда при переключении в
DirectX и обратно — фон с белого заменяется на серый).

Нажатие F5 не спасает.
Это исправляется перезагрузкой Windows, но не всегда.
Из-за ShellIconCache, как я понимаю.

Control panel applet Tweak UI из Power Toys по команде
Rebuild Icons на вкладке Repair производит "сброс"
всех окошек explorera, включая Рабочий стол.
Они "очищаются", "перезаполняются" в течение 2с или более
после чего значки всех объектов становятся нормальными.

В связи с этим окна получают сообщения WM_SETTINGCHANGE,
с wParam = SPI_SETNONCLIENTMETRICS (или 0 в других программах) и
lParam = 0, и обрабатывают их (return 0).

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0 ...

делает вроде то же самое, но не работает (return 1).

Как быть?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.