Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убрать _видимую_ программу из taskbar, Как убрать видимую программу из taskbar 
:(
    Опции темы
gAlexKo
Дата 13.3.2014, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 23.3.2011

Репутация: нет
Всего: нет



Долго искал как убрать _видимую_ программу из taskbar, но все напрасно. Много чего предлагают, но либо  программа не исчезает из taskbar, либо исчезает становясь вообще невидимой. Огромная просьба описать проверенный метод работающий на Windows XP. У меня CBulder 6.

Упрощенная задача: Делаем новую программу "часы". В ней единственная строка Caption = "test";
Нужно что-то добавить, чтобы форма была видна на десктопе, но исчезла бы из панели задач.
По моему единственный способ это зарегестрировать  программу как сервис (в старом win95 была доступна функция RegisterServiceProcess из KERNEL32.DLL, но сейчас этой возможности нет). 

Что скажут гуру?

Это сообщение отредактировал(а) gAlexKo - 13.3.2014, 11:31
PM MAIL   Вверх
gAlexKo
Дата 13.3.2014, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
gAlexKo
Дата 14.3.2014, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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)) ;

}
//---------------------------------------------------------------------------

PM MAIL   Вверх
gAlexKo
Дата 14.3.2014, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 23.3.2011

Репутация: нет
Всего: нет



А бывает и такое - если в проекте задействованы dll с VCL компонентами, то при установленной галке "Build with run time packages" программа из taskbar (указанным выше методом) все равно не убирается. Выход - компилировать прогу со снятой галкой. 

Это сообщение отредактировал(а) gAlexKo - 14.3.2014, 14:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0739 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.