Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скриншот свёрнутого окна [D7, WinXP]


hattak ©   (2010-01-27 02:29:00) 

Возник такой вопрос, а можно ли вообще сделать скриншот свёрнутого окна? Прочитал статейки, говорят про PrintWindow. Однако, PrintWindow может лишь помочь получить скриншот окна, на которое сверху накладываются другие, но не свёрнутого. Вообще, когда окно сварачивается, windows перестаёт его отрисовывать, надо понимать. Так как же здесь быть? Неужели такая задача не решаема?
Возникла мысль, если ответ на первое - нет, то можно ли как-то заставить windows отрисовать свёрнутое окно на канве скажем кона моей программы, т.е. обмануть его таким образом, чтобы он, windows после того, как окно свёрнуто, начинал его отрисовывать в окне моей программы ну или вроде того что-то ... В windows vista при подведении курсора к свёрнутому окну, оно отрисовывается в небольшом окне предпросмотра, вот что-то типа того, хочется сделать)
Помогите советом, уважаемые гуру!)


Rouse_   (2010-01-28 21:32:00) [1]

Бох ты мой, ну разверни свернутое окно и двинь его в  координаты -100000 по X и Y, сделай скрин и положи туда где лежало :)


Игорь Шевченко   (2010-01-28 00:50:00) [2]


> видимо она делает PrintWindow в момент открытия окна


в момент перед сворачиванием через хуки WH_SHELL и WH_CALLWNDPROC


hattak   (2010-01-28 00:43:00) [3]

мдя, пригляделся, видимо она делает PrintWindow в момент открытия окна)) хех, ну ладно, вопрос изначально ставился, можно ли ... нельзя так нельзя, спасибо всем!)))


Игорь Шевченко   (2010-01-28 00:30:00) [4]


> так она давно есть, зараза ...
> http://soft.oszone.net/program/3826/Visual_Task_Tips


hint: программа не показывает окна, минимизированные до ее запуска.

То есть, работает, как и предполагалось.


Eraser   (2010-01-28 00:30:00) [5]

говорят же - нельзя, а ты не веришь )


Вася   (2010-01-28 00:18:00) [6]

эта зараза ещё и многослойные окна как-то портит...о_О *


Вася   (2010-01-28 00:15:00) [7]

потестил...оно так и работает как я говорил - при сворачивании запоминаются миниатюры и всё.=)
наверное поставили хук на сворачивание, но я ещё не изучал как хуками пользоваться - придётся поиск мучать.=))


hattak   (2010-01-28 00:02:00) [8]


> если бы в XP можно было - давно бы сделали )


так она давно есть, зараза ...
http://soft.oszone.net/program/3826/Visual_Task_Tips
пожалуйста, у меня стоит и работает, всего 100 кб ...
при наведении курсора мыши на СВЁРНУТОЕ окно показыватся его скриншот!
так что очень даже можно, не смотря та то, что тут некоторые возмущаются, но вот как о.О

не, развернуть и свернуть это не тема совсем ...
вычитал где-то, что в винде свёрнутое окно, на самом деле просто убирается за вилимую облась экрана ...
проверил ... при сворачивании координаты окна меняются на -32000 - 32000
но всё равно скорировать оттуда область не получилось, т.е. я сдвинул область копирования в эти координаты, но опять же ничего ...


Вася   (2010-01-27 20:54:00) [9]

тому кто сподвиг меня изучать делфи как-то удавалось...тока я не знаю как - попробую разузнать...=)

как вариант - быстро разворачиваем окно,делаем его скриншот и сворачиваем обратно...=))

> В windows vista при подведении курсора к свёрнутому окну, оно отрисовывается в небольшом окне предпросмотра, вот
> что-то типа того, хочется сделать)


не думаю что в висте и семёрке делают скриншот свёрнутого окна,а потом его ещё и уменьшают - нерационально так...
наверное при сворачивании запоминаются миниатюры и всё.

да и как вы узнаете что навели курсор на кнопку вашего приложения в панели на которой пуск(не помню как правильно зовётся)?


Eraser   (2010-01-27 04:48:00) [10]

> [0] hattak ©   (27.01.10 02:29)


> В windows vista при подведении курсора к свёрнутому окну,
> оно отрисовывается в небольшом окне предпросмотра, вот
> что-то типа того, хочется сделать)

если бы в XP можно было - давно бы сделали )


hattak   (2010-01-27 03:17:00) [11]


> Когда кажется, креститься надо.

большое спасибо за ваши комментарии не по делу)


Германн   (2010-01-27 03:15:00) [12]


> hattak ©   (27.01.10 02:45) [2]
>
> я кажется объяснил

Когда кажется, креститься надо.


hattak   (2010-01-27 03:01:00) [13]

есть)) wH := FindWindow(nil, PChar('заголовок окна');
это не проблема, но хендл окна тут не поможет
когда окно свёрнуто, хендл окна пуст, винда перестаёт отрисовывать окно,
НО некоторые программы умеют делать скриншоты свёрнутых окон игр, скажем ...


Вася   (2010-01-27 02:50:00) [14]

хм...а хендл окна есь?)


hattak   (2010-01-27 02:45:00) [15]

я кажется объяснил, я понимаю что оно не отрисовывается
и просил, возможно ли "заставить" windows начать отрисовывать его в окне моей программы ...
пример - предпросмотр свёрнутых окон в висте ...


Германн   (2010-01-27 02:35:00) [16]


> hattak ©   (27.01.10 02:29)
>
> Возник такой вопрос, а можно ли вообще сделать скриншот
> свёрнутого окна?

Какой скриншот, если окно минимизировано?!


Наверх

Титульная страница Поиск, карта сайта Написать письмо