Конференция "WinAPI" » Как найти список всех окон у которых есть иконки в трее? [D7, WinXP]
 
  • grigor (24.06.10 01:20) [0]
    Т.е. мне нужно получить все хенделы окон у которых есть иконка в трее.
  • KilkennyCat © (24.06.10 01:33) [1]
    какая часть трея имеется ввиду?
  • grigor (24.06.10 02:06) [2]
    Там где стоят иконки приложений TraiIcon.
  • KilkennyCat © (24.06.10 02:12) [3]
    ну, тогда для некоторых окон придется сначала определить, а нет ли у них родительского процесса, который, собственно, иконку и держит. Ибо это далеко не всегда одним приложением сделано.
  • Leonid Troyanovsky © (24.06.10 11:03) [4]
  • sniknik © (24.06.10 13:20) [5]
  • DVM © (24.06.10 19:48) [6]

    > grigor   (24.06.10 02:06) [2]
    > Там где стоят иконки приложений TraiIcon.

    Это называется - Область уведомлений, а не трей.
  • Anatoly Podgoretsky © (24.06.10 21:55) [7]
    > grigor  (24.06.2010 01:20:00)  [0]

    Для этого окно совсем не требуется.
  • Deltas © (26.06.10 20:35) [8]

    > Anatoly Podgoretsky ©   (24.06.10 21:55) [7]
    > Для этого окно совсем не требуется.

    Интересно, и как же создать иконку в области уведомлений без окна? Shell_NotifyIcon() требует передачи в параметрах дескриптора окна. А при указании дескриптора 0, иконка пропадает из области уведомлений при проведении по ней курсора.
  • sniknik © (27.06.10 00:16) [9]
    > требует передачи в параметрах дескриптора окна.
    кто сказал?
  • Deltas © (28.06.10 01:13) [10]
    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]
    какой же хендл у регулятора громкости?:)
  • DVM © (22.07.10 14:30) [12]

    > Димка На   (19.07.10 19:49) [11]

    Регулятор громкости, значки сетевых подключений, и прочее - это непростые значки (по крайней мере в XP далее не разбирался). Это так называемые Shell Service Objects. По простому это COM объекты. Их подгружает и создает программы, выполняющая роль оболочки (например Explorer) и окно предоставляется этим приложением. Как то так.
  • Anatoly Podgoretsky © (22.07.10 19:01) [13]
    > DVM  (22.07.2010 14:30:12)  [12]

    Иконка не у окон, а у приложений.
  • sniknik © (23.07.10 22:36) [14]
    http://webfile.ru/4627297
    консольная прожка, окон нет, правда и меню у иконки нет... некуда события посылать.

    кстати программа rouse, ссылку на которую давал выше показывает, что регулятора громкости добавлен ехплорером.
 
Конференция "WinAPI" » Как найти список всех окон у которых есть иконки в трее? [D7, WinXP]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]