приветствую всех!
люди помогите найти решение след. проблеммы...
заранее оговорюсь, что просмотрел весь форум по WINAPI и не нашел редения данной проблеммы, встречал только решение частных случаев (типа свернуть одно ОПРЕДЕЛЕННОЕ окно).
у меня в программе должна быть реализована функция "свернуть все окна".
я пытался решить эту проблемму с помощью фун. EnumWindow но она перебирает HWND не только окон приложений, а также невибимых окон приложений (например тех что в трее) и когда я его(такое окно) минимизирую, посылкой
SendMessage(hwnd,MW_SYSCOMMAND,(MAKEWPARAM(SC_CLOSE,0),0);
оно(они) становиться ВИДИМЫМ!!!
Но мне этого никак не нужно.
Подсткажите как определить:
1) что хэндл окна являеться хэндлом именно видимого окна приложения.(наприме Word или Окно папки)
2) или ваш вариант всертывания всех окон
заранее благодарен за любой ответ
Re[2]: свернуь все окна приложений на рабочем столе
От:
Аноним
Дата:
02.08.04 15:41
Оценка:
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
A>а если сэмулировать нажатие клавиш Win+M или Win+D?
пробовал... не получилось у меня!
Re[2]: свернуь все окна приложений на рабочем столе
Много уважаемы мистре Burd огромное вам спасибо!!!!
но можно тогда еще один вопросик...
Что за константа 0x019f и почему енто собщение нуна посылать Shell_TrayWnd это наверное ярлычок свернуть све окна???(предположение)
Re[3]: свернуь все окна приложений на рабочем столе
Недокументированая. Как можно узнать? С помощь программки работы с окнами (spy++). Перехватить сообщение, которое генерится при нажатии кнопок 'свернуть все окна'. Замечу, что приведеный мной код — это не эмуляция нажатия.
А>и почему енто собщение нуна посылать Shell_TrayWnd это наверное ярлычок свернуть све окна???(предположение)
Нет. Кто принимает окна, которые сворачиваются? Панель задач — вот это она их и сворачивает. Правда, сворачивает процесс с названием explorer.exe, но окно Shell_TrayWnd создается в нем.
Любая задача имеет решение, даже когда решения не существует
Re[3]: свернуь все окна приложений на рабочем столе
А>Много уважаемы мистре Burd огромное вам спасибо!!!! А>но можно тогда еще один вопросик... А>Что за константа 0x019f и почему енто собщение нуна посылать Shell_TrayWnd это наверное ярлычок свернуть све окна???(предположение)
Я понимаю, что "Аноним" может быть недостаточно опытен в WinAPI но это не является оправданием таких дурацких предположений!
Посмотрите хотябы справку по FindWindow! А потом заодно и раздел Windowing в MSDN!
Удачи!
... << RSDN@Home 1.1.3 beta 1 >>
Мы — маньяки, должны помогать друг другу!
Re[4]: свернуь все окна приложений на рабочем столе
От:
Аноним
Дата:
02.08.04 15:55
Оценка:
Здравствуйте, Burd, Вы писали:
A>>Что за константа 0x019f
B>Недокументированая. Как можно узнать? С помощь программки работы с окнами (spy++). Перехватить сообщение, которое генерится при нажатии кнопок 'свернуть все окна'. Замечу, что приведеный мной код — это не эмуляция нажатия.
А>>и почему енто собщение нуна посылать Shell_TrayWnd это наверное ярлычок свернуть све окна???(предположение)
B>Нет. Кто принимает окна, которые сворачиваются? Панель задач — вот это она их и сворачивает. Правда, сворачивает процесс с названием explorer.exe, но окно Shell_TrayWnd создается в нем.
большое сэнкю! как это я не догадасля spy++ врубить! (стормозил)
еще рас спасибо
Re[4]: свернуь все окна приложений на рабочем столе
От:
Аноним
Дата:
02.08.04 15:58
Оценка:
Здравствуйте, .Mistery, Вы писали:
M>Здравствуйте, <Аноним>, Вы писали:
А>>Здравствуйте, Burd, Вы писали:
B>>>
А>>Много уважаемы мистре Burd огромное вам спасибо!!!! А>>но можно тогда еще один вопросик... А>>Что за константа 0x019f и почему енто собщение нуна посылать Shell_TrayWnd это наверное ярлычок свернуть све окна???(предположение)
M>Я понимаю, что "Аноним" может быть недостаточно опытен в WinAPI но это не является оправданием таких дурацких предположений! M>Посмотрите хотябы справку по FindWindow! А потом заодно и раздел Windowing в MSDN!
M>Удачи!
Мда, оправдания здесь бесполезны...Спасибо загляну!
Re[2]: свернуь все окна приложений на рабочем столе
От:
Аноним
Дата:
02.08.04 17:16
Оценка:
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
A>а если сэмулировать нажатие клавиш Win+M или Win+D?
еще вариант — сделать ShellExecute("Show Desktop.scf" )