Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Форма из длл


Автор: Schumi 3.5.2006, 09:40
В длл есть форма, которая никуда не экспортируется.
То есть ехе вызывает функцию из длл, она создает форму, что-то делает, показывает ее, а в конце удаляет.
Сейчас появляется иконка. Можно ли ее убрать с таскбара.

То есть как по аналогии - есть messagebox (из длл), если его просто вызвать, то кнопочка на таскбаре появится, а если указать хэндл exe формы, то нет  smile 

Пробовал через ITaskbarList - она исчезает, но все равно, визуально отображается, что она появилась, а через секунду исчезла, кроме того - пройдя alt+tab, снова появляется

Код

CoUninitialize(NULL);
ITaskbarList * pTaskbar = 0;
CoCreateInstance(CLSID_TaskbarList,
                       0,
                       CLSCTX_INPROC_SERVER,
                       IID_ITaskbarList,
                       (void**)&pTaskbar);
pTaskbar->HrInit();
pTaskbar->DeleteTab(hTaskBar); // hTaskBar - хэндл формы
pTaskbar->Release();
CoUninitialize(); 

 

Автор: Vyacheslav 3.5.2006, 09:46
Уже устал писать одно и тоже.
Собирайте dll и exe с включенной опицией Build with runtime package
Правда кокретно этот случай можно вылечить подменой в dll Application на Application из exe, но все равно рано или позно без использования опции нарветесь на другие баги   

Автор: Schumi 3.5.2006, 14:18
Vyacheslav,  вы не поверите, но я знаю, что такое поиск.

Цитата(Vyacheslav @  3.5.2006,  09:46 Найти цитируемый пост)
Собирайте dll и exe с включенной опицией Build with runtime package


перед тем, как спросить, я это уже делал. Эффект - нулевой.
Может быть дело в том, что exe делана в пятом, а длл - в шестом.
Подмена TApplication не работает; на строчке создания формы av.

В принципе работала бы и так, учитывая, что работа с формой идет только внутри длл.
А только, что иконка на таскбаре появлялась.

Сделал чуть другую подмену - подменил не сам Application, а его хэндл...
"Вроде" работает, но страшновато.
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)