![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| AlexxO |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 21.1.2004 Где: Belarus, Borisov Репутация: нет Всего: нет |
Помогите пжалста определить ID иконки в трее сторонней тулзы (надо для удаления этой иконки с трея).
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
нельзя его определить
( одно время сам пытался ) разве-что хук цеплять -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| AlexxO |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 21.1.2004 Где: Belarus, Borisov Репутация: нет Всего: нет |
ну а как тогда скрыть иконку стороннего приложения в трее по-другому? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
а фиг его знает
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
ID пока не смог определить... но вот вполне рабочий пример
Завтра дальше покопаю MSDN Это сообщение отредактировал(а) Girder - 14.8.2004, 01:34 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
а весь проект можно ( а то Delphi под рукой нет, а поиграться хочется )?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Какой проект? Скомпилированный файл?
Я пока не могу прикреплять файлы к сообщению. _hunter идея проста. Делается трассировка по всем кнопкам в ToolBar-е. Определяется их номера и всплывающая подсказка. И в обработчике bDeleteClick происходит удаление желаемой кнопки(то есть не обходимый результат достигнут). А на счет ID иконки, мне просто самому хочется это определить, так как хочется найти рещения(на будушее для себя) как обойти ошибки в XP связанные с не правильной выдачи результатов на некоторые сообщения(TB_). В MSDN описание этих багов есть, а вот пути решений нет. Кстати, я не вижу проблемм перенести этот код на Си. P.S. _hunter ту статью(CreateProcess) я не нашел. Но если в кратце там следущее(исходник текста на англ): Один аналитик описывал проблеммы безопасности и некоторые выводы касались ShellExecute, типо: Об возможном ограничения функциональности данной функции в дальнейшем. -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Подправил код, см. выше.
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
А может есть функция типа WindowFromPoint
|
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Клиенскую область ты можеш определить только для видемых иконок и то применение WindowFromPoint для них тебе ни чего не даст.
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
_hunter у меня получилось и картинки извлечь.
Если тебе или кому будет интересно, могу исходники выложить. -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
очень интересно
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Girder |
|
||||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Все очень просто оказалось.
Можно получить иконки исходя из этого: SendMessage(TrayTB32,TB_GETIMAGELIST,0,0); НО есть для WinXP маленькая проблеммка: http://support.microsoft.com/default.aspx?...Ben-us%3B811415 Все ниже сказанное справедливо для WinXP, на остальных пока не проверял (для более ранних Win через TB_GetImageList и типо того). По этому я пошел другим путем... -По путно приняв следующие данные 1)Tray - Это даже не совсем окно 2)Кнопки - в tray это просто картинки. 3) См. выше код: У нас в принципе все есть, и более того мы можем любому приложению в Tray заменить картинку послав сообщение TB_CHANGEBITMAP 4)Да и как видно из кода(см.выше)... любую кнопку мы можем удалить Как видно дело осталось только в красоте приложения... что бы с картинками... 1)Нам надо раскрыть Tray:
2)Определить размер занимаемыми иконками и просто копируем их из Tray
3)Закрываем Tray
У нас все есть... а индексы картинок будут совпадать с Нулевыми индексами кнопок, т.е. b^.iButton. _hunter понял? Ладно к завтра перепешу польностью код и погоняю и тогда полностью выложу весь код. Кстати, а к моему посту модератор может прицепить вложенные файлы? Что бы и исходники... и скомпилированный прогу подцепить? -------------------- Как слышим, так и пишим. Истина где-то там... |
||||||
|
|||||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Прога готова. Теперь бы кто помог её подцепить к сообщению для тестирования. А?
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Girder, кидай мне на мыло, прицеплю...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Тут чисто исходники без .exe (19 кб):
Это сообщение отредактировал(а) Girder - 12.5.2005, 14:49 Присоединённый файл ( Кол-во скачиваний: 43 )
SystemTray1.zip-------------------- С уважением, г-н Посол. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Это так и задумано ?
Мне кажется, что что-то неправильно работает Навожу на вторую половинку значка оперы, мне пишет, что это инет-подключение... А когда запустил .exe еще потом пару раз, кнопки стали вообще пустыми... А значок PGP (он идёт последним) вообще не выводится... Присоединённый файл ( Кол-во скачиваний: 28 )
shot.gif-------------------- С уважением, г-н Посол. |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Конечно нет
Это сообщение отредактировал(а) Girder - 6.9.2004, 14:15 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Новая версия, уже почти без глюков
(20 кб) Присоединённый файл ( Кол-во скачиваний: 84 )
SystemTray4.zip-------------------- С уважением, г-н Посол. |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Краткая информация по проге:
1)Клик по кнопке в программе, равносилен клику по иконке проги в трее; 2)По правой кнопке мышки вызывается всплывающее окно в котором можно: -а)Вызвать всплывающее окно программы из трея; -б)Просмотреть информацию об кнопке из трея; -в)Удалить кнопку из трея; -г)Обновить информацию о трее. -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Nicholas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
Она не работает в Windows 9X! |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Нашел код на С, определяющий не только ID но и еще несколько параметров (хэндл окна и пр.), работает под любую Винду. Если у кого есть время переписать на Дельфи могу выложить.
|
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Выкладывай...
|
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
||||
|
||||
| Raider123123 |
|
|||
|
Unregistered |
А можно еще раз выложить ? |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Если хорошо попросите... Присоединённый файл ( Кол-во скачиваний: 56 )
gettrayinfo_cpp.zip 3,88 Kb |
|||
|
||||
| Intelligio |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 24.4.2009 Репутация: нет Всего: нет |
А как извлечь саму иконку в трее запущенного приложения, а не просто скопировать значек из трея, программы извлекающие ресурсы из exe файлов не видят этих иконок.
Это сообщение отредактировал(а) Rrader - 29.8.2009, 14:58 |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |