Иконка в трее. Координаты?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Иконка в трее. Координаты?

Сообщение X-BOND » 15.12.2004 (Ср) 18:49

Как узнать RECT иконки в трее?
Пробовал найти hwnd перебором окон в трее путем EnumChildWindows но моя иконка не находится.
Какие есть варианты?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.12.2004 (Ср) 19:23

У иконок в трее нет hWnd :-)
Изображение

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.12.2004 (Ср) 19:26

Хорошо, тогда что значит этот код, что он возвращает?
Код: Выделить всё
SysTray=FindWindow("Shell_TrayWnd",NULL);
NotifyWnd=FindWindowEx(SysTray,0,"TrayNotifyWnd",0);

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 15.12.2004 (Ср) 19:52

MSDN писал(а):Additional query words: 2.00 tray Shell_TrayWnd TrayNotifyWnd

:wink:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.12.2004 (Ср) 19:54

X-BOND писал(а):Хорошо, тогда что значит этот код, что он возвращает?
Код: Выделить всё
SysTray=FindWindow("Shell_TrayWnd",NULL);
NotifyWnd=FindWindowEx(SysTray,0,"TrayNotifyWnd",0);

hWnd трея. А где противоречие?
Изображение

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.12.2004 (Ср) 20:00

В треях я почти ничего не понимаю, можно уточнить, что такое Shell_TrayWnd и что такое TrayNotifyWnd ?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.12.2004 (Ср) 20:12

Это окна, составляющие трей.
Изображение

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 15.12.2004 (Ср) 20:20

Shell_TrayWnd - таскбар
Shell_TrayNotifyWnd - сам трэй, дочернее окно таскбара. А значки в трее - обычные картинки, потому у них и нет hwnd.
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.12.2004 (Ср) 20:23

Tarik, отгадай, почему окно таскбара называется Shell_TrayWnd, а не Shell_TaskbarWnd :?:
Изображение

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.12.2004 (Ср) 20:27

Спасибо Tarik, с этим вроде разобрались, а как тогда можно перебрать те картинки в трее, чтобы найти нужную? GetDlgItem здесь может помочь?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.12.2004 (Чт) 4:23

Не может, иконки - это не окна.
Изображение

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 16.12.2004 (Чт) 11:15

tyomitch писал(а):Tarik, отгадай, почему окно таскбара называется Shell_TrayWnd, а не Shell_TaskbarWnd :?:

х. з.... Теряюсь в догадках :)
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.12.2004 (Чт) 11:20

MSDN писал(а):The taskbar notification area is sometimes erroneously called the "tray."

:)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.12.2004 (Чт) 12:20

Tarik писал(а):
tyomitch писал(а):Tarik, отгадай, почему окно таскбара называется Shell_TrayWnd, а не Shell_TaskbarWnd :?:

х. з.... Теряюсь в догадках :)

Отгадка тут: http://weblogs.asp.net/oldnewthing/arch ... 54831.aspx
Всем рекомендую прочитать - весьма любопытно.
Изображение

DragonTriste
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 15.08.2004 (Вс) 10:46

Сообщение DragonTriste » 16.12.2004 (Чт) 17:03

notification area... область уведомления..полоса индикации.. а как это по-русски правильно будет ?
dragons on line...

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 16.12.2004 (Чт) 17:46

Хм... Действительно интересно. А я почему-то сначала подумал о первых версиях виндов, где внизу (на панели метр на метр :) ) отображались значки запущенных задач :)
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 21.12.2004 (Вт) 13:37

Есть тут один извращенный вариант:
http://www.rsdn.ru/Forum/?mid=591972

Но может быть есть путь и проще?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 11

    TopList