Реализация своей панели задач

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Реализация своей панели задач

Сообщение Williams » 15.10.2008 (Ср) 16:44

Добрый день!
Вопрос состоит в следующем.
Требуется реализовать собственную панель задач. Соответственно, нужно получать список окон. Делать это по таймеру не рационально. Если другие варианты? Например, получать уведомления о создании окон и наоборот.
И вы думаете, что вас оставят в живых после прочтения этого поста?

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Реализация своей панели задач

Сообщение Proxy » 15.10.2008 (Ср) 16:59

Самый мегаудобный вариант - выпадающее меню. И при клике на кнопку, вызывающего это меню обновлять. Мне бы так нравилось больше, чем в виндовой панели задач. Для переключения всёравно почти все используют ALT + TAB (ну или почти все), а столь массивное количество вкладок (?) в панели задач занимают место, в которое можно запихнуть очень много всего полезного.

*далее начнётся бессмысленое оспаривание. Даже если все знают, что я прав, то всёравно оспорят. Только лишь ради того, что бы оспорить*
Follow the white rabbit.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Реализация своей панели задач

Сообщение tyomitch » 15.10.2008 (Ср) 17:10

Шеллхук Оловянникова на vbrussian.com
Изображение

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Реализация своей панели задач

Сообщение Williams » 15.10.2008 (Ср) 19:01

tyomitch писал(а):Шеллхук Оловянникова на vbrussian.com

Как всегда A+ :)
И вы думаете, что вас оставят в живых после прочтения этого поста?

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Re: Реализация своей панели задач

Сообщение Alexanbar » 16.10.2008 (Чт) 18:21

Код: Выделить всё
uRegMsg = RegisterWindowMessage(ByVal "SHELLHOOK")

Call RegisterShellHook(hwnd, RSH_REGISTER_TASKMAN) 
OldProc = GetWindowLong(hwnd, GWL_WNDPROC)
SetWindowLong hwnd, GWL_WNDPROC, AddressOf WndProc

Public Function WndProc(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
 

If wMsg = uRegMsg Then
   
   Select Case wParam
          Case HSHELL_WINDOWCREATED
              .....
          Case HSHELL_WINDOWDESTROYED
            ......
          Case HSHELL_WINDOWACTIVATED
             
              .....

         
   end select
end if
........


Если не будет использоваться Explorer как shell, необходимо:

Код: Выделить всё
Dim MM As MINIMIZEDMETRICS, rspi&


MM.cbSize = Len(MM)


rspi& = SystemParametersInfo(SPI_GETMINIMIZEDMETRICS, MM.cbSize, MM, 0&)

If rspi <> 0 Then
    If MM.iArrange <> ARW_HIDE Then
        MM.iArrange = ARW_HIDE
        rspi& = SystemParametersInfo(SPI_SETMINIMIZEDMETRICS, MM.cbSize, MM, 0&)
    End If
End If



Иначе панель задач не будет получать уведомления от окон.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Реализация своей панели задач

Сообщение Williams » 16.10.2008 (Чт) 22:19

Спасибо всем :)
И вы думаете, что вас оставят в живых после прочтения этого поста?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Реализация своей панели задач

Сообщение Williams » 17.10.2008 (Пт) 19:38

Кто-нибудь в курсе о совместимости этого метода с Вистой?

Добавлено::
Проверил, работает. Это есть рульно :)
И вы думаете, что вас оставят в живых после прочтения этого поста?

BVBot
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 08.09.2008 (Пн) 15:38

Re: Реализация своей панели задач

Сообщение BVBot » 17.10.2008 (Пт) 22:48

Мы с ANDLL как-то делали альтернативную панель задач... так и не доделали, но основа там реализована :) Можешь взять кое-какие решения из проекта.
Вложения
QuickBarEx.rar
(260.88 Кб) Скачиваний: 52


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 22

    TopList