-
Т.е. мне нужно получить все хенделы окон у которых есть иконка в трее.
-
какая часть трея имеется ввиду?
-
Там где стоят иконки приложений TraiIcon.
-
ну, тогда для некоторых окон придется сначала определить, а нет ли у них родительского процесса, который, собственно, иконку и держит. Ибо это далеко не всегда одним приложением сделано.
-
-
-
> grigor (24.06.10 02:06) [2] > Там где стоят иконки приложений TraiIcon.
Это называется - Область уведомлений, а не трей.
-
> grigor (24.06.2010 01:20:00) [0]
Для этого окно совсем не требуется.
-
> Anatoly Podgoretsky © (24.06.10 21:55) [7] > Для этого окно совсем не требуется.
Интересно, и как же создать иконку в области уведомлений без окна? Shell_NotifyIcon() требует передачи в параметрах дескриптора окна. А при указании дескриптора 0, иконка пропадает из области уведомлений при проведении по ней курсора.
-
> требует передачи в параметрах дескриптора окна. кто сказал?
-
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;
-
какой же хендл у регулятора громкости?:)
-
> Димка На (19.07.10 19:49) [11]
Регулятор громкости, значки сетевых подключений, и прочее - это непростые значки (по крайней мере в XP далее не разбирался). Это так называемые Shell Service Objects. По простому это COM объекты. Их подгружает и создает программы, выполняющая роль оболочки (например Explorer) и окно предоставляется этим приложением. Как то так.
-
> DVM (22.07.2010 14:30:12) [12]
Иконка не у окон, а у приложений.
-
http://webfile.ru/4627297консольная прожка, окон нет, правда и меню у иконки нет... некуда события посылать. кстати программа rouse, ссылку на которую давал выше показывает, что регулятора громкости добавлен ехплорером.
|