Автор | Сообщение |
|
| |
Пост 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) , окно приложения появилось но и иконка в трее жива а должна закрыться. Несколько другое поведение если при запуске окно свернуть сразу и тогда такого эффекта нет. Может кто делал что подобное под консоль и подскажет ?
|
|
|
Ответов - 3
[только новые]
|
|
|
| |
Пост N: 190
Зарегистрирован: 21.04.13
|
|
Отправлено: 30.05.16 22:25. Заголовок: Лишняя иконка в трее..
Можно попробовать повторно запустить приложение. Тогда можно увидеть уже две иконки в трее и т.д. Однако если навести мышку на трей , все иконки в трее, кроме последней - закроются.. Часто такое видел на сторонних приложениях.
|
|
|
|
| |
Пост N: 5692
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.05.16 22:37. Заголовок: petr707 petr707 Да ..
petr707 Да все так , но хотелось сделать нормально. Плагин в Far работает в этом плане нормально.
|
|
|
|
| |
Пост N: 5693
Зарегистрирован: 17.05.05
|
|
Отправлено: 31.05.16 09:20. Заголовок: Dima пишет: wait re..
Dima пишет: Переделал так wait // убиваем иконку в трее Hb_GtInfo( HB_GTI_SPEC, HB_GTS_SYSTRAYICON, ; { 2, HB_GTS_NIT_RESOURCEBYNAME,"MainIcon", "Test_Tray" } ) return
|
|
|
|