Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Свернуть все окна Добавлено: 30.03.04 22:11  

Автор вопроса:  S.W.I.F.T.

Подскажите, пожалуйста, ответ на такой вопрос. Как при нажатии на
кнопку "Свернуть все окна" (или Win+M) перехватывать это нажатие и не
сворачивать МОЮ программу. Чтобы сворачивались все остальные
приложения, а моя оставалась на экране. Спасибо!

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 30.03.04 23:28

1. Сворачивать все окна должна твоя программа!

2. Перечисляем все окна в системе

3. Для каждого окна, кроме своего, вызываем ф-цию ShowWindow(hWnd, SW_MINIMIZE)

4. Регистрация горячей клавиши, думаю, затруднений не вызовет...

Ответить

Номер ответа: 2
Автор ответа:
 lamepok



ICQ: 6206624 

Вопросов: 5
Ответов: 52
 Профиль | | #2 Добавлено: 30.03.04 23:46

sne

F ns yt vju,s jgbcfnm 'nj gj gjlhj,ytt&

Ответить

Номер ответа: 3
Автор ответа:
 lamepok



ICQ: 6206624 

Вопросов: 5
Ответов: 52
 Профиль | | #3 Добавлено: 30.03.04 23:49

Прости!

Сраные alt+shift!

sne А нельзяли по подробнее

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 31.03.04 00:18

2sne: при сворачивании всех окон указанным способом наблюдаются страшные артефакты. Как вариант: по событию минимизации возвращать форму на экран. Некрасиво, зато работает.

Ответить

Номер ответа: 5
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #5
Добавлено: 31.03.04 00:32

Хм... а какие тут артифакты могут возникать... На худой конец, можно прятать, потом показывать уже минимализированными...

2lamerok, а что именно подробнее ? Как все окна в системе перебрать, так это не проблемма найти, а как использовать АПИ, я думаю каждый хоть чуточку знакомый с этими функциями, разберется...

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 31.03.04 00:41

Гы. Посмотри. Мне, например, очень понравилось свернутое окно часиков Виндовых...

Ответить

Номер ответа: 7
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #7
Добавлено: 31.03.04 00:43

сейчас не могу, завтра в универ рано идти... потом порадуюсь :) Но ведь, по идее, тогда следует брать аттрибуты окошка и смотреть видимо ли оно на экране, а потом сворачивать, а так же еще парочку свойств окошка... хотя если покопать, сделать будет можно...

Ответить

Номер ответа: 8
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 31.03.04 00:51

А, вот еще - один признак как можно отсеивать - если GetParent = 0, то сворачиваем...

Ответить

Номер ответа: 9
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #9
Добавлено: 31.03.04 07:47

Может лучше по GetWindowLong искать соответствующий стиль окна?

Например:

If Style AND WS_MINIMIZEBOX Then ChangeState

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 31.03.04 07:55

Не катит ни один из предложенных способов. Контрпримеры:

1) Немодальное дочернее окно

2) Любое окно без кнопки Minimize

Ответить

Номер ответа: 11
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #11
Добавлено: 31.03.04 08:07

Дочернее окно тут не причём т.к. для его поиска используются другие ф-ии или флаги.

>Любое окно без кнопки Minimize

- Вот именно.

Ответить

Номер ответа: 12
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #12 Добавлено: 31.03.04 08:57

Я в пору моей юности использовал Microsoft Shell Controls and Automation (shell32.dll). Подключаешь ее через References, затем

Private Sub Command1_Click()

Dim Shell As New Shell32.Shell

Shell.MinimizeAll

End Sub

Ответить

Номер ответа: 13
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 31.03.04 10:59

2LOL: круто, только не shell32.dll, а shdoc401.dll. И еще - парадокс: этот метод сворачивает окна НЕ ТАК, как Explorer! Он свернул у меня все окна, кроме WinAMP, а Explorer свернул и его. Чувствую, придется пускаться в длительное исследование с отладчиком...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам