Форум: "WinAPI";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
ВнизКак узнать, есть ли в трее иконка чужого приложения? Найти похожие ветки
← →
il (2003-04-29 17:01) [0]Уважаемые мастера!
Подскажите, плиз, как сделать subj.
Мне просто надо проверить, есть ли там иконка или нет. Хэндл окна, обрабатывающего события трея, я знаю.
Shell_NotifyIcon - добавляет, меняет или удаляет иконку. А вот есть ли, например, функция, проверяющая наличие иконки от определенного окна?
Заранее спасибо
← →
Игорь Шевченко (2003-04-29 17:33) [1]
> А вот есть ли, например, функция, проверяющая наличие иконки
> от определенного окна?
Вряд ли :)
← →
il (2003-04-29 17:42) [2]Может, каким-то другим образом можно вычислить, что иконка от определенного окна висит в трее? SysTrayX ведь как-то с иконками работает - скрывает их, но совсем не удаляет, позволяет на них нажимать (из своего меню).
Мастера! Никто с такой проблемой не сталкивался?
← →
AlexandrRya (2003-04-29 22:55) [3]Могу предложить метод, в простонародье называемый "Через жопу"
Итак, нам нужно знать:
1. Handle трея (HTray). Это просто. Надо найти окно TrayNotifyWnd дочернее окну Shell_TrayWnd.
2. Handle окна (HWnd)- обработчика сообщения от иконки (ты говоришь, что это известно).
Далее делаем так:
1. Эмулируем каким-либо образом (SendMessage ?) движение мыши вдоль трея (то есть вдоль HTray) начиная с левого края до правого.
2. При этом explorer или другой шелл пошлет окну HWnd сообщение Shell_NotifyIcon.
3. Это сообщение нам надо отловить. (Например с помощью хука).
4. Если же в результате выполнения пункта 1, сообщение окну Hwnd не пришло, значит ионки нету :-(
-----------------------
Sorry, но лучшего способа я не знаю. если получится, напиши на мыло, охота проверить, так как способ только что придумал, но работать должен!
← →
Cobalt (2003-04-30 08:13) [4]> есть ли в трее иконка чужого приложения?
Хм, наверное, ошибка? Нахрена вам иконка? Вот есть ли приложение - вот это цель. а иконки - они для юзеров.
← →
il (2003-04-30 09:03) [5]> Cobalt
Иконки, они, конечно, для юзеров, только если бы можно было обойтись поиском окна или процесса, я бы так не выпендривался и таких экзотических вопросов не задавал.
Дело в том, что прога, работая, может создать в трее 2 разные иконки, а может и не создать. Вот мне надо отловить создание конкретной иконки. Сначала я, конечно, пробовал находить и окно, отвечаючее за процесс, который отражается иконкой в трее, и процесс, но это не вышло. Изврат с иконкой - последний шанс
← →
Cobalt (2003-04-30 16:12) [6]Тогда - только перехват TrayNotificationArea - внедряешься в АП Проводника, устанавливаешь свою функцию этому окну - и все получаешь как на блюдечке.
← →
AlexandrRya (2003-04-30 22:22) [7]> Cobalt (30.04.03 16:12)
Можно и так, но надо быть уверенным, что программа, про иконку которой мы хотим узнать, грузится поже нашей, а, иначе, мы пропустм самое интересное :)
А что мой способ так и не пробовали - вроде и сложного ничего нет?
← →
Cobalt (2003-05-01 19:10) [8]Перечитал пост AlexandrRya (29.04.03 22:55)
Совершенно согласен - пожалуй, именно так и надо делать.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c