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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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