2010-09-28 2 views
1

Я пытаюсь сделать видимый значок в трее моей программы при запуске Windows, с компонентом NotifyIcon.NotifyIcon при запуске

Сама программа отлично работает и появляется значок лотка.

Но, когда я размещаю свою программу при запуске компьютера, значок в трее не всегда отображается, а сама программа работает без проблем, и ее главное окно видно.

Здесь нет специального кода, весь код автогенерации.

Работает на Windows 7 Ultimate.

Что я могу сделать, чтобы значок в трее всегда появлялся при запуске Windows?

+1

Вы можете найти ответ в этой теме полезный http://stackoverflow.com/questions/1858552/system-tray-icon-not-appearing-on-startup – Duncan

ответ

2

в окне запуска

Если вы имеете в виду вы работаете время загрузки операционной системы (например, путем добавления записи в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run или с услугой), то процесс выполняется в другом сеансе и не имеете доступ к пользовательскому интерфейсу.

Если вы хотите, процесс для запуска при старте OS и быть интерактивным вам потребуется два приложения: один для запуска при запуске и разоблачить некоторые формы между 0process коммуникаций (IPC), а также два приложения UI который использует первые приложения IPC для связи с ним.

Вы также (в зависимости от ваших целевых пользователей), возможно, должны рассмотреть случаи, когда (1) никто не регистрируется в системе (например, без головного сервера) и (2), когда несколько пользователей подключаются (например, удаленные подключения к рабочему столу к общей системе).

В прошлом сервисы могли быть настроены для добавления элементов в пользовательский интерфейс консоли, но это было заблокировано в Vista (поскольку оно открыло дыры безопасности).

0

Возможно, вы найдете его в скрытых значках. В Win7 нажмите стрелку «Показать скрытые значки», нажмите «Настроить» и переопределите поведение.

+0

спасибо, но это не проблема, мой значок в трее тоже не существует. – DxCK

+0

Я не знаю, не слышал об этой проблеме раньше. Посмотрите, что происходит, когда вы ставите System.Threading.Thread.Sleep (5000) в метод Main, давая панели задач достаточно времени для полной инициализации. –

+0

Спасибо, ваше предложение с Thread.Sleep (5000) увеличило вероятность появления значка в трее, все еще не на 100%. – DxCK

 Смежные вопросы

  • Нет связанных вопросов^_^