On-line: Haz, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
администратор




Пост N: 5691
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.05.16 22:14. Заголовок: [?] Консоль , иконка в системном трее


Посмотрел работу плагина под Far Manager (FarTray) , свернули окно Far , вылезла
иконка Far в системном трее + из панели задач Far "убежал".
На иконке в трее мышкой клац и окно Far восстановилось , иконка из трея ушла.
Поставили задачу сделать аналог для моей задачи.
Вот наработка ...........
 
#include "hbgtwvg.ch"
#include "hbgtinfo.ch"

Proc main
private hh
REQUEST HB_GT_WVT
REQUEST HB_GT_WVG_DEFAULT

? "TEST"


hh:=GETFOREGROUNDWINDOW()

HB_GtInfo( HB_GTI_NOTIFIERBLOCK, {|nEvent| Notifier( nEvent ) } )

// ShowWindow(hh, 6) // если окно нужно сразу поместить в трей при запуске в данном контексте

wait
return nil
***************
FUNCTION Notifier( nEvent )

DO CASE
CASE nEvent == HB_GTE_SETFOCUS
CASE nEvent == HB_GTE_CLOSE
CASE nEvent == HB_GTE_RESIZED
OTHERWISE

if isiconic(hh)
ShowWindow(hh, 3) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6
BringWindowToTop(hh)

Hb_GtInfo( HB_GTI_SPEC, HB_GTS_SYSTRAYICON, ;
{ , HB_GTS_NIT_RESOURCEBYNAME,"MainIcon", "Test_Tray" } )

endif
ENDCASE
RETURN 0

************
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
#include <shlobj.h>

HB_FUNC( ISICONIC )
{
hb_retl( IsIconic( ( HWND ) hb_parnl( 1 ) ) );
}

HB_FUNC (GETFOREGROUNDWINDOW)
{
HWND hWnd = GetForegroundWindow();
hb_retnl ((LONG) hWnd);
}


HB_FUNC( BRINGWINDOWTOTOP )
{
BringWindowToTop( ( HWND ) hb_parnl( 1 ) );
}


HB_FUNC( SHOWWINDOW )
{
ShowWindow( ( HWND ) hb_parnl( 1 ), HB_ISNUM( 2 ) ? hb_parni( 2 ) : SW_SHOW );
}

#pragma ENDDUMP



Но возникла проблема. Запустил приложение , свернул окно , в трее иконка есть , жму на ней (R_Click) ,
окно приложения появилось но и иконка в трее жива а должна закрыться.
Несколько другое поведение если при запуске окно свернуть сразу и тогда такого эффекта нет.
Может кто делал что подобное под консоль и подскажет ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]





Пост N: 190
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 30.05.16 22:25. Заголовок: Лишняя иконка в трее..


Можно попробовать повторно запустить приложение.
Тогда можно увидеть уже две иконки в трее и т.д.
Однако если навести мышку на трей , все иконки в трее, кроме последней - закроются..
Часто такое видел на сторонних приложениях.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5692
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.05.16 22:37. Заголовок: petr707 petr707 Да ..


petr707
Да все так , но хотелось сделать нормально.
Плагин в Far работает в этом плане нормально.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5693
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.05.16 09:20. Заголовок: Dima пишет: wait re..


Dima пишет:

 цитата:
wait
return nil


Переделал так
 
wait
// убиваем иконку в трее
Hb_GtInfo( HB_GTI_SPEC, HB_GTS_SYSTRAYICON, ;
{ 2, HB_GTS_NIT_RESOURCEBYNAME,"MainIcon", "Test_Tray" } )

return



Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 684
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет