![]() |
|
![]() ![]() ![]() |
|
gAlexKo |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
Долго искал как убрать _видимую_ программу из taskbar, но все напрасно. Много чего предлагают, но либо программа не исчезает из taskbar, либо исчезает становясь вообще невидимой. Огромная просьба описать проверенный метод работающий на Windows XP. У меня CBulder 6.
Упрощенная задача: Делаем новую программу "часы". В ней единственная строка Caption = "test"; Нужно что-то добавить, чтобы форма была видна на десктопе, но исчезла бы из панели задач. По моему единственный способ это зарегестрировать программу как сервис (в старом win95 была доступна функция RegisterServiceProcess из KERNEL32.DLL, но сейчас этой возможности нет). Что скажут гуру? Это сообщение отредактировал(а) gAlexKo - 13.3.2014, 11:31 |
|||
|
||||
gAlexKo |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
Вышел из положения написав изврат в виде обработчика особого таймера который срабатывает при запуске программы один раз:
void __fastcall Tblf::special_hide_timerTimer(TObject *Sender) { ShowWindow(Application->Handle, SW_HIDE) ; SetWindowLong(Application->Handle, GWL_EXSTYLE, GetWindowLong(Application->Handle, WS_EX_TOOLWINDOW)) ; special_hide_timer->Enabled = false; } //--------------------------------------------------------------------------- Если кто будет говорить, что такое работает в CreateForm - плюньте ему в глаза. ;-) Это сообщение отредактировал(а) gAlexKo - 13.3.2014, 13:32 |
|||
|
||||
gAlexKo |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
А вот, такое прокатывает:
void __fastcall Tblf::FormShow(TObject *Sender) { ShowWindow(Application->Handle, SW_HIDE) ; SetWindowLong(Application->Handle, GWL_EXSTYLE, GetWindowLong(Application->Handle, WS_EX_TOOLWINDOW)) ; } //--------------------------------------------------------------------------- |
|||
|
||||
gAlexKo |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 23.3.2011 Репутация: нет Всего: нет |
А бывает и такое - если в проекте задействованы dll с VCL компонентами, то при установленной галке "Build with run time packages" программа из taskbar (указанным выше методом) все равно не убирается. Выход - компилировать прогу со снятой галкой.
Это сообщение отредактировал(а) gAlexKo - 14.3.2014, 14:27 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |