![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не "запуздыривается" [орешник (c)] иконка в трей
И. Павел © (2010-09-30 15:30:00)Здравствуйте.
В моей программе в OnCreate главной формы расположен код размещения иконки в трее:
with TrayIconData do
begin
cbSize := SizeOf(TrayIconData);
Wnd := Handle;
uID := 0;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_ICONTRAY;
hIcon := IconEmpty.Picture.Icon.Handle;
StrPCopy(szTip, Caption);
end;
Shell_NotifyIcon(NIM_ADD, @TrayIconData);
Перед Application.Run у меня стоит команда:
if ParamStr(1) = 'auto' then Application.ShowMainForm := false;
Если запланировать запуск программы с ключем "auto" при входе в Windows, то инокна не появляется (хотя процесс выполняется). Если запускать программу вручную, или автоматически но без ключа "auto", то иконка отображается.
Подскажите, пожалуйста, как можно разместить иконку в трее для программы с ShowMainForm = false, запускаемой планировщиком?
PS: Конечно, можно делать таймером, или показывать главную форму на какой-то момент, но может быть есть более "прямые" способы?
Заранее спасибо.
И. Павел (2010-09-30 16:26:00) [21]> [3] Palladin © (30.09.10 16:03)
Я попробовал разместить код создания иконки прямо перед Application.Run и в обработчике Application.OnActivate. Результат тот же - иконка не появляется при перезапуске сеанса, хотя планировщик процесс запускает...
Palladin (2010-09-30 16:03:00) [22]какая разница где это стоит, я тебе говорю в каком месте запуздыривать
И. Павел (2010-09-30 15:56:00) [23]> [1] Palladin © (30.09.10 15:41)
Application.ShowMainForm := false у меня стоит прямо перед Application.Run
Palladin (2010-09-30 15:41:00) [24]перед Application.Run
или на Application.OnActivate