Системный трей

Discussion in 'WASM.BEGINNERS' started by DuXeN0N, May 18, 2010.

  1. DuXeN0N

    DuXeN0N New Member

    Blog Posts:
    0
    Joined:
    May 2, 2009
    Messages:
    46
    Хочу убрать с экрана меню пуск, но этому мешает только трей, так как им иногда пользуюсь. Решил написать программу, которая создает такой же сис. трей но не знаю с чего начать. Ось win 7. Может у кого то есть примеры, идеи и тп... Буду очень благодарен. Писать хочу на с++
     
  2. Y_Mur

    Y_Mur Active Member

    Blog Posts:
    0
    Joined:
    Sep 6, 2006
    Messages:
    2,494
    Научись перехватывать Shell_NotifyIcon.
     
  3. JCronuz

    JCronuz New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2007
    Messages:
    1,240
    Location:
    Russia
    А чем простой метод поиска классов Shell_NotifyIcon->BUTTON не подходит?
     
  4. DuXeN0N

    DuXeN0N New Member

    Blog Posts:
    0
    Joined:
    May 2, 2009
    Messages:
    46
    Y_Mur
    так эта функция только добавляет, изменяет или ставит фокус на значек.
     
  5. Y_Mur

    Y_Mur Active Member

    Blog Posts:
    0
    Joined:
    Sep 6, 2006
    Messages:
    2,494
    DuXeN0N
    а чего ты ещё от трея хочешь? После того как запросы на добавление значков пойдут в твою прогу всё остальное дело техники : имхо ;)
     
  6. freyr

    freyr New Member

    Blog Posts:
    0
    Joined:
    Feb 23, 2010
    Messages:
    95
    Мб так?

    Code (Text):
    1. BOOL StartButton(BOOLEAN Visible)
    2. {
    3.     HWND    hTray, hChild;
    4.     BOOL    Status = FALSE;
    5.     TCHAR   lpClassName[MAX_PATH + 1];
    6.  
    7.     hTray = FindWindow("Shell_TrayWnd", NULL);
    8.  
    9.     if ( hTray != NULL )
    10.     {
    11.         hChild = GetWindow(hTray, GW_CHILD);
    12.  
    13.         if ( hChild != NULL )
    14.         {
    15.             do
    16.             {
    17.                 if ( GetClassName(hChild, lpClassName, MAX_PATH) )
    18.                 {
    19.                     if ( !lstrcmpi(lpClassName, "BUTTON")  )
    20.                     {
    21.                         Status = ShowWindow(hChild, Visible);
    22.                         break;
    23.                     }
    24.                 }
    25.                 hChild = GetWindow(hChild, GW_HWNDNEXT);
    26.             }
    27.             while ( hChild != NULL );
    28.         }
    29.  
    30.     }
    31.     return ( Status );
    32. }
     
  7. punxer

    punxer Андрей

    Blog Posts:
    0
    Joined:
    Oct 16, 2006
    Messages:
    1,327
    Location:
    Ржев
    SetWindowParent натрави на родителя трея и перемести его на свое окно, а всю панель скрой.