none
Проблема с запуском служб RRS feed

  • Вопрос

  • Доброго все времени суток!

    Есть необходимость в создании службы, которая имела иконку в трее, по которой можно было бы сделать некое действие.

    Пока служба должна только открывать форму, загруженную из ддл, по нажатию на иконку в трее. И это как раз таки и не получается. При старте службы иконки в трее не видно, как компонент она создана и добавлена. Помогите, что можно сделать?

    Заранее спасибо!

    • Перемещено Siddharth Chavan 1 октября 2010 г. 21:34 MSDN Forums Consolidation (От:Visual C#)
    26 марта 2010 г. 11:34

Ответы

  • Доброе время!

    Вы ничего не путаете? В общем случае службы не предназначены для GUI приложений, а фактически «иконка в трее»  требует наличии дескриптора окна.  Службы (или же как еще можно назвать – системные сервисы) предназначены для выполнения сугубо фоновых операций. 

    В Вашем случае, мне кажется, может быть два варианта решения:
    1. Создать обычное GUI приложение, которое будет стартовать через автозапуск и которое будет иметь иконку в трее.

    2. Если все таки нужна служба, для выполнения каких-то фоновых действий, то все также идти по пути: седлать службу, которая все так же запустит GUI приложение, которое в свое очередь создаст иконку в трее.

    В принципе, второй вариант может быть реализован в виде всего одного исполняемого файла, в зависимость от передаваемых параметров приложение может стартовать как с системная служба или же как GUI приложение.

    • Помечено в качестве ответа I.Vorontsov 30 марта 2010 г. 10:45
    26 марта 2010 г. 14:47
  • Добрый день.

    Посмотрите реализацию следующих проектов:

    Minimize window to system tray

    SystemTrayNotifyIcon with Event Generator

    Adding tray icons and context menus

    Adding a 'Minimize to tray'-button to a Form's caption bar


    Для связи [Mail]
    • Помечено в качестве ответа I.Vorontsov 30 марта 2010 г. 10:45
    29 марта 2010 г. 6:29

Все ответы

  • Доброе время!

    Вы ничего не путаете? В общем случае службы не предназначены для GUI приложений, а фактически «иконка в трее»  требует наличии дескриптора окна.  Службы (или же как еще можно назвать – системные сервисы) предназначены для выполнения сугубо фоновых операций. 

    В Вашем случае, мне кажется, может быть два варианта решения:
    1. Создать обычное GUI приложение, которое будет стартовать через автозапуск и которое будет иметь иконку в трее.

    2. Если все таки нужна служба, для выполнения каких-то фоновых действий, то все также идти по пути: седлать службу, которая все так же запустит GUI приложение, которое в свое очередь создаст иконку в трее.

    В принципе, второй вариант может быть реализован в виде всего одного исполняемого файла, в зависимость от передаваемых параметров приложение может стартовать как с системная служба или же как GUI приложение.

    • Помечено в качестве ответа I.Vorontsov 30 марта 2010 г. 10:45
    26 марта 2010 г. 14:47
  • Добрый день.

    Посмотрите реализацию следующих проектов:

    Minimize window to system tray

    SystemTrayNotifyIcon with Event Generator

    Adding tray icons and context menus

    Adding a 'Minimize to tray'-button to a Form's caption bar


    Для связи [Mail]
    • Помечено в качестве ответа I.Vorontsov 30 марта 2010 г. 10:45
    29 марта 2010 г. 6:29