Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2012, 01:54   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию Как обновить иконки в трее?

Собственно, сабж.
Допустим, я запустил Firebird как приложение.
Код:
WinExec(PAnsiChar('fbserver.exe -a'), SW_SHOWNORMAL);
Отобразилась иконка в трее.
Потом убил процесс
Код:
WinExec('taskkill /f /im fbserver.exe', SW_HIDE);
Иконка исчезнет только после наведения на нее мыши.
Порылся в интернете - народ предлагает программно имитировать движение мыши по трею. Некрасивый какой-то способ.

Вариант с Shell_NotifyIcon до конца не понял...
Как выловить параметр PNotifyIconDataA?

Код:
Shell_NotifyIcon(NIM_DELETE, <чего сюда писать не врубился?>)
А может есть другой способ? Чтобы обновить все иконки сразу...
_SERGEYX_ вне форума Ответить с цитированием
Старый 30.09.2012, 08:12   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Код:
uses CommCtrl;
procedure UpdateSysTray;
var
  w : HWND;
  i, n : integer;
begin
  w := FindWindow ('Shell_TrayWnd', nil);
  w := FindWindowEx (w, 0, 'TrayNotifyWnd', nil);
  w := FindWindowEx (w, 0, 'SysPager', nil);
  w := FindWindowEx (w, 0, 'ToolbarWindow32', nil);
  n := SendMessage(w, TB_BUTTONCOUNT, 0, 0);
  for i := 0 to n-1 do
    PostMessage(w, WM_MOUSEMOVE, 0, 0);
end;
Кольша вне форума Ответить с цитированием
Старый 01.10.2012, 09:10   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Лучше тогда не убивать процесс через TaskKill, а посылать приложению сообщение WM_CLOSE и тогда сервер закроется нормально и иконку в трее уберёт сам.
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как восстановить иконки в трее? Баламут Windows 2 27.11.2010 14:51
Как получить иконки которые находятся в трее?? Paul Hindenburg Общие вопросы Delphi 5 21.10.2010 19:46
Смена иконки в трее GvR Общие вопросы Delphi 1 18.06.2010 16:27
Как обновить иконки у VirtualStringTree AnalogXP Общие вопросы Delphi 4 31.03.2008 11:31
Обновить значки в трее Romanus Win Api 10 24.09.2007 16:21