Как создать кнопку панели задач без какого-либо окна? - PullRequest
2 голосов
/ 31 января 2011

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

Ответы [ 4 ]

4 голосов
/ 31 января 2011

Нет, это невозможно. Кнопки на панели задач представляют windows . У вас не может быть кнопки без окна, и это окно должно быть видимым. (Окно может иметь координаты, которые помещают его за пределы экрана (ов), и оно может иметь нулевые размеры, но оно должно иметь стиль WS_VISIBLE.)

Другой вариант - создать значок уведомления. У него тоже должно быть окно, но оно не должно быть видимым. Однако настройка может потребовать больше усилий, чем вы хотите, если конечная цель - чтобы программа была службой; службы не могут отображать значки уведомлений или иметь окна.

Возможно, самое простое изменение - просто сделать вашу программу консольной программой . Затем ОС создаст для вас консольное окно. Ваша программа не должна создавать ее или управлять ею каким-либо образом.

1 голос
/ 01 февраля 2011

Создайте объект типа ITaskbarList , затем вызовите метод AddTab для него.Вам не нужно видимое окно, чтобы это работало.Подойдет пустышка, невидимое окно.Конечно, такое окно не будет отображаться на панели задач, если вы не добавите его вручную указанным выше способом.

0 голосов
/ 31 января 2011

Службы Windows должны иметь пользовательский интерфейс.На самом деле, в Windows Vista и Windows 7 они работают в другом сеансе и не имеют доступа к рабочему столу.

Для мониторинга службы вам нужно написать другое приложение.Обычно такие приложения запускаются со скрытыми окнами и используют область уведомлений для взаимодействия с пользователем.

0 голосов
/ 31 января 2011

Создать пользовательский класс окна и держать окно всегда минимизированным или всегда невидимым (размер 0 и положение где-то около -32767)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...