Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехватить обновление рабочего стола


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 возникает точно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо