![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как найти список всех окон у которых есть иконки в трее? [D7, WinXP]
grigor © (2010-06-24 01:20:00)Т.е. мне нужно получить все хенделы окон у которых есть иконка в трее.
sniknik (2010-07-23 22:36:00) [1]http://webfile.ru/4627297
консольная прожка, окон нет, правда и меню у иконки нет... некуда события посылать.
кстати программа rouse, ссылку на которую давал выше показывает, что регулятора громкости добавлен ехплорером.
Anatoly Podgoretsky (2010-07-22 19:01:00) [2]> DVM (22.07.2010 14:30:12) [12]
Иконка не у окон, а у приложений.
DVM (2010-07-22 14:30:00) [3]
> Димка На (19.07.10 19:49) [11]
Регулятор громкости, значки сетевых подключений, и прочее - это непростые значки (по крайней мере в XP далее не разбирался). Это так называемые Shell Service Objects. По простому это COM объекты. Их подгружает и создает программы, выполняющая роль оболочки (например Explorer) и окно предоставляется этим приложением. Как то так.
Димка На (2010-07-19 19:49:00) [4]какой же хендл у регулятора громкости?:)
Deltas (2010-06-28 01:13:00) [5]BOOL Shell_NotifyIcon(
DWORD dwMessage,
PNOTIFYICONDATA lpdata
);
typedef struct _NOTIFYICONDATA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
TCHAR szTip[64];
DWORD dwState;
DWORD dwStateMask;
TCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
};
TCHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;
HICON hBalloonIcon;
} NOTIFYICONDATA, *PNOTIFYICONDATA;
sniknik (2010-06-27 00:16:00) [6]> требует передачи в параметрах дескриптора окна.
кто сказал?
Deltas (2010-06-26 20:35:00) [7]
> Anatoly Podgoretsky © (24.06.10 21:55) [7]
> Для этого окно совсем не требуется.
Интересно, и как же создать иконку в области уведомлений без окна? Shell_NotifyIcon() требует передачи в параметрах дескриптора окна. А при указании дескриптора 0, иконка пропадает из области уведомлений при проведении по ней курсора.
Anatoly Podgoretsky (2010-06-24 21:55:00) [8]> grigor (24.06.2010 01:20:00) [0]
Для этого окно совсем не требуется.
DVM (2010-06-24 19:48:00) [9]
> grigor (24.06.10 02:06) [2]
> Там где стоят иконки приложений TraiIcon.
Это называется - Область уведомлений, а не трей.
sniknik (2010-06-24 13:20:00) [10]http://rouse.drkb.ru/winapi.php#fwsystrayinfo
Leonid Troyanovsky (2010-06-24 11:03:00) [11]
> grigor (24.06.10 01:20)
http://rsdn.ru/forum/winapi/1530985.aspx
http://rsdn.ru/forum/winapi/2216005.aspx
http://www.lostinthebox.com/viewtopic.php?f=39&t=3723
--
Regards, LVT.
KilkennyCat (2010-06-24 02:12:00) [12]ну, тогда для некоторых окон придется сначала определить, а нет ли у них родительского процесса, который, собственно, иконку и держит. Ибо это далеко не всегда одним приложением сделано.
grigor (2010-06-24 02:06:00) [13]Там где стоят иконки приложений TraiIcon.
KilkennyCat (2010-06-24 01:33:00) [14]какая часть трея имеется ввиду?