Форум » [x]Harbour » [?] Консоль , иконка в системном трее » Ответить

[?] Консоль , иконка в системном трее

Dima: Посмотрел работу плагина под Far Manager (FarTray) , свернули окно Far , вылезла иконка Far в системном трее + из панели задач Far "убежал". На иконке в трее мышкой клац и окно Far восстановилось , иконка из трея ушла. Поставили задачу сделать аналог для моей задачи. Вот наработка ........... [pre2] #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 [/pre2] Но возникла проблема. Запустил приложение , свернул окно , в трее иконка есть , жму на ней (R_Click) , окно приложения появилось но и иконка в трее жива а должна закрыться. Несколько другое поведение если при запуске окно свернуть сразу и тогда такого эффекта нет. Может кто делал что подобное под консоль и подскажет ?

Ответов - 3

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

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

Dima: Dima пишет: wait return nil Переделал так [pre2] wait // убиваем иконку в трее Hb_GtInfo( HB_GTI_SPEC, HB_GTS_SYSTRAYICON, ; { 2, HB_GTS_NIT_RESOURCEBYNAME,"MainIcon", "Test_Tray" } ) return [/pre2]




полная версия страницы