Форум: "Потрепаться";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизРабота с systray ем Найти похожие ветки
← →
Dolot (2003-12-29 00:30) [0]Как с сабжем работать? Нужно управлять иконками, а точнее нужно скрыть иконку из SysTray"я. Так как иконка - обычное окно, надо послать сообщение ему, но какое? Какое сообщение скрывает окно?
И вторая проблема - как найти это окно? Как искать в SysTray"евских окнах?
← →
Anatoly Podgoretsky (2003-12-29 00:38) [1]иконка это не окно
← →
Dolot (2003-12-29 00:48) [2]Ладно, согласен. Но как с ними работать? Проблему я описал - нужно научиться для начала удалять значок иконки из SysTray"я. Не закрывая программу
← →
Anatoly Podgoretsky (2003-12-29 00:58) [3]Shell_NotifyIcon
← →
Dolot (2003-12-29 23:09) [4]Отлично, но как я заполню PNOTIFYICONDATA ? Откуда узнаю параметры...
← →
sniknik (2003-12-29 23:32) [5]typedef struct _NOTIFYICONDATA { // nid
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
char szTip[64];
} NOTIFYICONDATA, *PNOTIFYICONDATA;
так и будем хелп частями переписывать.. ;о))
совет хочеш? имя функции у тебя есть, дельфи с хелпами и кучей исходников тоже. хелпы можно читать, а в исходниках искать. сделай поиск к примеру по "*.pas; *.dpr" с включением Shell_NotifyIcon в текст, наверняка найдеш пример использования. (поспорил бы но не зная версии дельфей... стремно, а вдруг не найдеш? ;о))
← →
хз (2003-12-30 01:17) [6]Anatoly Podgoretsky © (29.12.03 00:58) [ 3]
Dolot (29.12.03 23:09) [ 4]
Забавно...
← →
Юрий Зотов (2003-12-30 06:24) [7]1. Учитывая, что структура TNotifyIconData хранится по неизвестному адресу в адресном пространстве неизвестно какого процесса...
2. Учитывая, что даже если удастся эту структуру в этом адресном пространстве найти, то вызывать Shell_NotifyIcon(NIM_DELETE...) придется от имени ЧУЖОГО процесса (чтобы во втором параметре передать корректный указатель) - для чего придется внедрять в этот чужой процесс свой код...
3. Учитывая, что ничто не мешает самому процессу-жертве неоднократно вызывать Shell_NotifyIcon и после удаления иконки...
4. И еще учитывая, что, оказывается, "иконка - обычное окно" (!!!) ...
Так вот, учитывая все это, я бы порекомендовал потратить время на что-нибудь более реальное. Потому что п.п. 1-3 еще можно было бы обсуждать... если бы не п.4.
← →
Dolot (2003-12-30 16:31) [8]sniknik © (29.12.03 23:32) [5]
ты наверное не читаешь? Ну так вот - мне нужно не свою иконку впихнуть в трей. Ну да ладно, Юрий Зотов меня понял.
>Юрий Зотов © (30.12.03 06:24) [7]
согласен с вашими словами. Но все таки не ругайтесь на меня, пожалуйста.
в адресном пространстве неизвестно какого процесса
Ну адрес процесса я узнать смогу. Я же знаю какой процесс создает эту иконку. Только это вряд ли поможет...
>. И еще учитывая, что, оказывается, "иконка - обычное окно
сглупил. Я же признал это. Просто видимый элемент, может взаимодействовать с пользователем - я и подумал, что окно.
Тем не менее, обсуждать 1..3 смысла я считаю не имеет. Особенно учитывая 3 - как-то не подумал об этом.
Но теперь интересно чисто гипотетически - нету функций, которые позволяют управлять чужой иконкой и вообще взаимодействовать с чужими иконками в SysTray"е ?
← →
sniknik (2003-12-30 16:44) [9]Dolot (30.12.03 16:31) [8]
> ты наверное не читаешь?
как же читаю
> Проблему я описал - нужно научиться для начала удалять значок иконки из SysTray"я
учится нужно на своих. для начала.
> Но теперь интересно чисто гипотетически - нету функций, которые позволяют управлять чужой иконкой и вообще взаимодействовать с чужими иконками в SysTray"е ?
функция одна, не в ней проблема, проблема что в NOTIFYICONDATA.hWnd записать. если его узнаеш закроеш любую.
← →
NeyroSpace (2003-12-30 17:07) [10]а если перебором? :-)
← →
Юрий Зотов (2003-12-30 17:07) [11]> Dolot (30.12.03 16:31) [8]
> нету функций, которые позволяют управлять чужой иконкой и
> вообще взаимодействовать с чужими иконками в SysTray"е?
Возможно, и есть (хотя, IMHO, маловероятно). Возможно, даже и документированы (хотя, IMHO, еще более маловероятно). Тогда надо копать, видимо, в сторону интерфейсов оболочки.
← →
Dolot (2003-12-30 17:40) [12]>учится нужно на своих. для начала
а кто вам поведал, что я не в состоянии запуздырить свою иконку в трей?
>проблема что в NOTIFYICONDATA.hWnd записать. если его узнаеш закроеш любую
вы утверждаете, что узнав NOTIFYICONDATA.hWnd я смогу вызвать Shell_NotifyIcon и смогу закрыть любой значок?
← →
sniknik (2003-12-30 17:52) [13]Dolot (30.12.03 17:40) [12]
> а кто вам поведал, что я не в состоянии запуздырить свою иконку в трей?
никто, но раз спрашиваеш и спрашиваеш так что неясно что ты знаеш а чего нет, мог предположить. в следующий раз уточняй (приводи список своих знаний, и предупреждение "обижусь если кто усомнится" ;о))
кстати судя по употребляемым словам, "запуздырить", список получится небольшой.
> вы утверждаете, что узнав NOTIFYICONDATA.hWnd я смогу вызвать Shell_NotifyIcon и смогу закрыть любой значок?
больше того, я это знаю точно, могу даже примерчик выслать состряпал тут, пока суть да дело. тока звиняй но exe only (а то вдруг обижу уже известным, но пока непонятым).
← →
sniknik (2003-12-30 17:58) [14]на самом деле, еше и uID нужен, но предполагая что больше 10 иконок ни у кого нет...
← →
имя (2003-12-30 18:13) [15]Удалено модератором
Примечание: Используем один ник в ветке.
← →
Dolot (2003-12-31 13:53) [16]sniknik, ну что, не поделишься исходным кодом своей супер программы?
← →
sniknik (2003-12-31 14:39) [17]Dolot (31.12.03 13:53) [16]
> sniknik, ну что, не поделишься исходным кодом своей супер программы?
ну во первых она не супер, (вызов одной функции с 2 разными параметрами это с каких пор крутизной считается?).
я же не чужие иконки закрываю, свои, из второй программы (значение hWnd просто руками переношу, наглядно. можно и по другому конечно).
а во вторых с какой стати я с тобой делится должен? мне не нравится как ты отвечаеш, советы в задницу практически посылаеш сам ничего не делаеш а код тебе дай. обойдешся.
считай что это из вредности.
хотя, если всетаки последуеш совету из > sniknik © (29.12.03 23:32) [5] сам такую же запросто напишеш (у меня ушло 15мин) а если еще подумаеш хорошо подучишся то может и чужую сможеш (я даже пытатся не буду, незачем).
exe-ник как доказательство, без проблем, всем желающим.
← →
Aristarh (2003-12-31 14:51) [18]О-о-о, да сникник уже празднует по полной... :))
Ни орфографии, ни пунктуации...
← →
Dolot (2003-12-31 15:06) [19]sniknik, да и болт с тобой! Я и сам все напишу, а тебе чтоб пусто стало.
← →
Дремучий (2003-12-31 15:15) [20]
> Dolot (31.12.03 15:06) [19]
> sniknik, да и болт с тобой! Я и сам все напишу, а тебе чтоб
> пусто стало.
а за такие слова ручки нужно с корнями выдергивать!
ты сюда за помощью пришел или как? Пиши сам, кто тебе не дает? А другим яму копать не нужно -- они тебе свою могут оддолжить!
← →
Dolot (2003-12-31 15:20) [21]Ручки надо выдергивать, да? А ему ручки не надо выдергивать?!
Я то сюда за помощью пришел! А вот он сюда зачем сюда пришел? Меня опускать? Так пусть идет в другую ветку!
← →
sniknik (2003-12-31 17:01) [22]Dolot (31.12.03 15:06) [19]
зря огрызаешся
> Я и сам все напишу
чего в принципе и хотел, даже мог бы помочь (но не писать за тебя, разницу понимаеш?) но не после поста
> Dolot (30.12.03 16:31) [8]
иы там все можеш, и запуздырить иконку в трей и адрес процесса узнать, ну все. только 1 функцию с параметрами вызвать не можеш...
и обижаешся если тебе не дай бог говорять то что уже знаеш.
ну а последующее только укрепило меня в том что ты не тот человек с кем хотелось бы общатся.
(кстати почему чаще всего незарегистрированные ники хамят?...)
p.s. програмка теперь имеет "бонус" ;о) (обманул когда говорил "я даже пытатся не буду, незачем" :), решил попробовать ради интереса, а оно раз и с первого раза получилось)
теперь снимает значки 3х программ (те что под рукой были)
думаю многим знакомы
Borland Socket Server
SQL Server Service Manager
Диспетчер задач Windows
да. пришол я сюда просто потому что в основном мне нравится обшение с теми кто здесь тусуется, не конкретно в этой ветке а вообше на форуме. такие как ты очень редкое исключение. (и слава богу за это)
еше нравится решать загадки (попадаются интересные, не всегда же банильщина) а на кросворды не тянет... сдесь интереснее.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c