ws_ex_appwindow - вопрос срочный

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

ws_ex_appwindow - вопрос срочный

Сообщение Williams » 23.03.2009 (Пн) 14:54

Мне нужно определить, отображать окно на панели задач или нет. Документация говорит о ws_ex_appwindow, но на практике далеко не каждое окно, среди тех, что на оригинальной панели задач, имело этот флаг. Что-то еще есть?
И вы думаете, что вас оставят в живых после прочтения этого поста?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: ws_ex_appwindow - вопрос срочный

Сообщение jangle » 23.03.2009 (Пн) 16:21

Чисто интуитивное решение. Кнопки на таскбаре это же окна, значит их все можно сосчитать :)
Находим хендл таскбара FindWindow("Shell_TrayWnd", "") а потом функцией EnumChildWindows считаем все кнопки и через GetWindowText получаем название приложений.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ws_ex_appwindow - вопрос срочный

Сообщение Хакер » 23.03.2009 (Пн) 16:28

Документация правильно говорит.

но на практике далеко не каждое окно, среди тех, что на оригинальной панели задач, имело этот флаг

А может ты ошибся с этим?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: ws_ex_appwindow - вопрос срочный

Сообщение Williams » 23.03.2009 (Пн) 20:49

Хакер писал(а):А может ты ошибся с этим?


Проверь, не думаю что ошибся.

решение такое:

Сначала проверяем IsWindowVisible, затем GetWindow с GW_OWNER, далее GetParent и наконец, GetWindowLong с WS_EX_TOOLWINDOW. Все "правильные" окна проходят, все "неправильные" отфильтровываются.
И вы думаете, что вас оставят в живых после прочтения этого поста?


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

    TopList  
cron