Не могу удалить иконку из трея

Раздел посвящен программированию с использованием Power Basic.
Lapex
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 25.02.2008 (Пн) 14:01

Не могу удалить иконку из трея

Сообщение Lapex » 09.11.2010 (Вт) 13:24

Пишу dll к чужому приложению, имеющему иконку в системном трее. (чужое приложение умеет работать с моим dll)
Из dll я хочу достучаться к иконке приложения.

Попытка удалить иконку из трея:
Код: Выделить всё
GLOBAL NID5 AS NOTIFYICONDATA5

NID5.cbSize = SIZEOF(NID5)
NID5.hWnd = hWndApp        ' дескриптор окна проекта заранее известен
NID5.uFlags = %NIF_MESSAGE OR %NIF_ICON OR %NIF_TIP
NID5.uID = 0               ' uID я не знаю ???

Shell_NotifyIcon(%NIM_DELETE, BYVAL VARPTR(NID5))   

Не удаляется :(
Т.к. uID иконки мне не известен, то пробовал подставлять другие значения в цикле - никакой реакции.

Заранее благодарен за любые идеи.

Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Re: Не могу удалить иконку из трея

Сообщение Dark Machine » 27.12.2010 (Пн) 9:42

для uID я использовал CurrInstance от WINMAIN

вот как я это делал...
Код: Выделить всё
...
FUNCTION WINMAIN (BYVAL CurInst AS LONG, _
                  BYVAL PrvInst AS LONG, _
                  BYVAL CmdLine AS ASCIIZ PTR, _
                  BYVAL CmdShow AS LONG) EXPORT AS LONG

    ' Save the Instance for other calls
    hInst = CurInst
    .....
    ' Make window to handle tray processing.
    ' This is a small (1 pixel) window.
    ' DDT will force you to "SHOW" it but it's so small that, who will see it
    ' and thats only until it's hidden.
    DIALOG NEW %HWND_DESKTOP,"",1,1,1,1,0 ,%WS_EX_TOPMOST OR %WS_EX_TOOLWINDOW TO hTrayDlg
    .....
   
    .....
       ti.cbSize = SIZEOF(ti)
       ti.hWnd   = hTrayDlg
       ti.uID    = hInst
       ti.uFlags = %NIF_ICON OR %NIF_MESSAGE OR %NIF_TIP
       ti.uCallbackMessage = %WM_TRAY
       ti.szTip  = $RSSTRACK & " / Connecting ..."
       ti.hIcon  = LoadIcon(hInst,BYVAL MAKLNG(%IDR_IMGBUSY,0))

       Shell_NotifyIcon %NIM_MODIFY, ti
       ....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Не могу удалить иконку из трея

Сообщение iGrok » 27.12.2010 (Пн) 16:43

Lapex писал(а):uID иконки мне не известен

Ну, тут как бы и ответить-то нечего... "Удали то, не знаю что"..

Получай список иконок, перебирай их и выясняй, кому они принадлежат.
Сходу нашлось вот это: http://www.manhunter.ru/assembler/283_p ... _tree.html
label:
cli
jmp label

Lapex
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 25.02.2008 (Пн) 14:01

Re: Не могу удалить иконку из трея

Сообщение Lapex » 28.12.2010 (Вт) 12:17

Ух, сколько сразу информации :D .
Спасибо ребята за помощь, буду разбираться.

С Наступающим Новым Годом!


Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList