![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехватить обновление рабочего стола
volser © (2005-05-15 23:29:00)Какое сообщение нужно ловить, чтобы перехватить обновление рабочего стола?
Питался spy++ом выловить, но так и не смог настроить, там кучу левых сообщений ловит. Подскажите, плиз.
volser (2005-05-19 21:44:00) [1]Спасибо, я уже разобрался
alpet (2005-05-19 10:46:00) [2]При обновлении через меню, окно SysListView32:FolderView получает сообщения, среди которых есть и WM_NOTIFY idCtrl:0, pnmh:0006FB20 (после обновления списка) и WM_USER + 3152 (как реакция на выбор пункта меню).
DVM (2005-05-19 10:15:00) [3]
> volser
А ради чего это затевается? Если будет известна цель - проще будет ответить как.
VMcL (2005-05-18 22:01:00) [4]>> volser (18.05.05 21:27) [9]
> Вот именно что множество, и на какое из них мне реагировать?
См. [1].
volser (2005-05-18 21:27:00) [5]
> alpet © (18.05.05 16:23) [8]
> WM_COMMAND можно ловить, вроде explorer регистрирует горячие
> клавиши. По крайней мере в XP, ему (окну с заголовком "Program
> Manager") приходит такое сообщение:
> WM_COMMAND wNotifyCode: 1 (send from accelerator)wID:41504.
Это сообщение доходить только при нажатии F5, а при обновлении рабочего стола со всплывающего меню, оно не доходит :-(
> Окну класса "SysListView32" (WindowText="FolderView") же
> приходит множество сообщение LVM_SETITEMSTATE, WM_SETREDRAW,
> WM_PAINT и еще несколько.
Вот именно что множество, и на какое из них мне реагировать?
alpet (2005-05-18 16:23:00) [6]WM_COMMAND можно ловить, вроде explorer регистрирует горячие клавиши. По крайней мере в XP, ему (окну с заголовком "Program Manager") приходит такое сообщение:
WM_COMMAND wNotifyCode: 1 (send from accelerator)wID:41504.
Окну класса "SysListView32" (WindowText="FolderView") же приходит множество сообщение LVM_SETITEMSTATE, WM_SETREDRAW, WM_PAINT и еще несколько.
volser (2005-05-17 22:09:00) [7]
> Marser © (16.05.05 20:46) [6]
> LVM_UPDATE - то, что тебе нужно.
Попробовал при нажатии F5 не воникает это сообщение (пробовал ловить при помощи Spy и сам в хуке тоже пытался ловить).
Marser (2005-05-16 20:46:00) [8]LVM_UPDATE - то, что тебе нужно.
volser (2005-05-16 19:36:00) [9]
> inic
Я ловил SysListView32
> а на самом деле на десктопе лежит SysListView32, вот у него
> при обновлении возникает куча сообщений.
Вот именно, что куча. А какой из них нужно ловить?
inic (2005-05-16 18:24:00) [10]volser (16.05.05 17:52) [3]
Ты видимо ловил сообщения самой верхней ветки в Spy++,
а на самом деле на десктопе лежит SysListView32, вот у него при обновлении возникает куча сообщений.
У меня Windows XP (возможно для Win98 чуть по другому, но тоже SysListView32):
Desktop
"Program Manager" (Progman)
"" (SHELLDLL_DefView)
"FolderView" (SysListView32).
volser (2005-05-16 17:52:00) [11]
> Что значит обновление? Перерисовка? Перерисовка фона? Нажатие
> F5?
> Разные сообщения, однако.
Refresh: F5, когда нажимаешь в попап меню "обновить", когда ярлык создаешь или ей самой захотелось обновится.
А также как заставить перерисоваться фон?
DVM (2005-05-16 10:40:00) [12]
> Какое сообщение нужно ловить, чтобы перехватить обновление
> рабочего стола?
Что значит обновление? Перерисовка? Перерисовка фона? Нажатие F5?
Разные сообщения, однако.
Marser (2005-05-16 00:13:00) [13]Левых? Не уверен.
wm_paint возникает точно.