К сожалению, Explorer просто не может обновляться каждый раз, когда ему так говорят. Потому что слишком много приложений ведут себя плохо, и просто всегда используют SHChangeNotify () с SHCNE_ALLEVENTS. Представьте себе, если бы проводник действительно всегда обновлял все при каждом получении этого уведомления (да, иногда несколько раз в секунду!).
Вот почему иногда это не работает.
Но вот как вы можете «обмануть» исследователя:
Отправьте уведомление для более чем одного пути, снизу вверх. Обычно достаточно сначала отправить уведомление, например, за N:\folder
, а затем N:\
, чтобы действительно обновить N:\
.
И вы должны сначала отправить сообщение WM_DEVICECHANGE, а затем вызвать SHChangeNotify ().