Здравствуйте 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).
Как быть?