Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / получить координаты иконки приложения в System Tray / 25 сообщений из 30, страница 1 из 2
15.11.2006, 14:27
    #34130351
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
кто нибудь дайте совет

как получить координаты иконки опредёлённого приложения в System Tray
или на hwnd или ещё как-нибудь

как сверить что мышка прошла над этой иконкой
...
Рейтинг: 0 / 0
15.11.2006, 14:54
    #34130479
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Чужого или своего?
...
Рейтинг: 0 / 0
15.11.2006, 14:55
    #34130482
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
своего конечно
...
Рейтинг: 0 / 0
15.11.2006, 16:55
    #34131001
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Просто-напросто отловить form_mousemove.
...
Рейтинг: 0 / 0
15.11.2006, 16:57
    #34131010
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
При прохождении курсора над иконкой в y передается значение, определяющее, что именно проходит, а не кликает.
...
Рейтинг: 0 / 0
15.11.2006, 17:09
    #34131062
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
в form_mousemove можно поймать если действительно проходит над иконкой
а если выходит за пределы как это словить
...
Рейтинг: 0 / 0
16.11.2006, 06:15
    #34131939
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
michael Rв form_mousemove можно поймать если действительно проходит над иконкой
а если выходит за пределы как это словить
через hook событий мышки, плюс найти данные, в смысле координаты и размеры systray затем при возникновении событии движения (hook) сравнивать с данными systray, сойдет?
...
Рейтинг: 0 / 0
16.11.2006, 10:11
    #34132257
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
При прохождении можно попытаться определить максимальные и минимальные x и y через GetCursorPos, а потом по какому-нибудь таймеру сравнивать с ними.
...
Рейтинг: 0 / 0
16.11.2006, 11:25
    #34132475
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Ребята

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

вопрос как получить прямоугольник только определённой иконки в трее
...
Рейтинг: 0 / 0
16.11.2006, 11:47
    #34132601
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Его можно определить приблизительно - за несколько отловов событий mousemove и получения координат курсора.
...
Рейтинг: 0 / 0
16.11.2006, 12:33
    #34132872
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
не совсем то

при запуске нужно точно получить прямоугольник иконки
программно
Left Right Top Botton

и в зависимости находится мышка над иконкой или нет
производить определённые действия

с этим примером нужно несколько раз тыкнутся чтобы примерно знать координаты

как перебрать и получить все приложения в трее + их координаты
если знаешь хендлер всего трея
...
Рейтинг: 0 / 0
16.11.2006, 13:32
    #34133151
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Так, как хочешь ты - походу никак.
...
Рейтинг: 0 / 0
16.11.2006, 13:36
    #34133168
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
michael R зависимости находится мышка над иконкой или нетНепонятно, зачем для этого знать координаты? Если событие произошло, курсор по-любому над иконкой. Координаты нужны, если ты собираешься делать какие-то манипуляции с изображением. Если так, то почему скрываешь этот факт?
...
Рейтинг: 0 / 0
16.11.2006, 13:51
    #34133259
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
событие происходит на форме
а если происходит вне формы как поймать
тем более в трее


я ничего не скрываю
мне нужно если мышка вышла из района иконки приложения
(это я проверяю через таймер соответствие совпадений координат)
то я отключаю определённые действия
если мышка в районе иконки то включаю

вопрос знать координаты района иконки приложения в трее
...
Рейтинг: 0 / 0
16.11.2006, 14:42
    #34133514
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
michael Rсобытие происходит на форме
а если происходит вне формы как поймать
тем более в трееКакой нафик формы? Ты внимательно смотрел мой пример? Посмотри еще раз, особенно обработчик Form_MouseDown. Когда мышь проходит над иконкой , возникает это событие с указанными в примере параметрами.
michael Rмне нужно если мышка вышла из района иконки приложения...Тогда такой вариант - раз ты знаешь координаты всего трея, то при возникновении события можешь определить координаты курсора относительно трея. Все иконки имеют стандартный размер - вроде бы 16х16 (уточни), делишь ширину трея на ширину иконок+расстояние между ними (если есть), из координат, полученных в событии, определяешь порядковый номер своей иконки, из него - примерные координаты +/- пиксель.
...
Рейтинг: 0 / 0
16.11.2006, 14:47
    #34133546
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Если таскбар выше, чем одна полоска и иконки располагаются в два и более ряда, придется учитывать и высоту трея.
...
Рейтинг: 0 / 0
16.11.2006, 14:59
    #34133610
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Уточнил сам)
Размер иконок 16х16, расстояние между иконками по вертикали и горизонтали - 2px, отступ от верхнего и левого края трея - 1px, часы в расчет можно не брать. Этих данных достаточно, чтобы рассчитать координаты иконки точно, без всяких +/-.
...
Рейтинг: 0 / 0
16.11.2006, 15:02
    #34133635
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Кстати, эти данные справедливы для стандартного синего стиля виндов, под нестандартным стилем или с отключенными стилями сетка иконок может иметь другие размеры.
...
Рейтинг: 0 / 0
16.11.2006, 15:03
    #34133647
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
из координат, полученных в событии, определяешь порядковый номер своей иконки
это как сделать

и я ведь могу кликнуть в разное место относительно иконки
это может быть и верх и центр и низ
как быть в таком случаи

в любом случаи спасибо
...
Рейтинг: 0 / 0
16.11.2006, 15:09
    #34133671
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
я тут нашёл пример
но чёрт ногу сломит

это можно как-нибудь сократить
...
Рейтинг: 0 / 0
16.11.2006, 15:21
    #34133719
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Кол-во иконок по ширине - iСountX = TrayWidth/(16+2)
Прядковый номер - iIndexX = (TrayLeft - cp.x) mod iСountX cp.x - х курсора
Координата x - iX = iIndexX * (16 + 2) + 1 + TrayLeft
Если ничего не напутал.
Аналогично с у.
...
Рейтинг: 0 / 0
16.11.2006, 15:31
    #34133750
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Да, пример навороченый. Проще сделать как я написал, чем разбирать по косточкам этот ocx.
...
Рейтинг: 0 / 0
16.11.2006, 15:34
    #34133765
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Таки напутал.
iIndexX = ((TrayLeft - cp.x) mod iСountX) + 1
...
Рейтинг: 0 / 0
16.11.2006, 15:36
    #34133776
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
И опять напутал :)
iIndexX = ((TrayLeft - cp.x + 1) mod iСountX) + 1
...
Рейтинг: 0 / 0
16.11.2006, 16:00
    #34133866
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получить координаты иконки приложения в System Tray
Из оного примера тебе нужен только модуль tray.bas, с остальными модулями он вроде не связан.
В нем происходит перебор всех иконок в трее, координаты нужной извлекаются путем сравнения ее тултипа с тултпами каждой из найденных в функции GetTrayIconRect.

Автор этого примера сам насобирал по исходничьим помойкам разных модулей и скомпоновал в одного монстра франкенштейна.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / получить координаты иконки приложения в System Tray / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]