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

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

Как получиьт изображение окна?


Страницы:   1 2

@!!ex ©   (2007-12-06 21:27:00) 

Задача.
Есть несколько открытых окон. Некоторые видны полностью, некоторые частично перекрыты, некоторые вообще не видны под другими окнами.
Задача в том, чтобы в программе получит скриншот для всех окон.
Способ точно есть, но я даже не представляю куда копать.


Sapersky   (2007-12-07 14:15:00) [1]

Есть ещё такая библиотека SPrintWindow, которая, как утверждает автор, может работать и в 2000, но она, похоже, так и не вышла из состояния "беты". С учётом того, что используется хакерский метод (собственный драйвер), это вызывает определённые опасения...
http://expire.free.fr/board/index.php?showtopic=109


@!!ex   (2007-12-07 11:00:00) [2]

С invisible окон тоже скриншот снимается! *COOL* :)


@!!ex   (2007-12-07 10:58:00) [3]

> [34] KSergey ©   (07.12.07 07:10)

Может быть фича в том, что PrintWindow хитро окна перебирает. Во всяком случае визуально это очень быстрая операция. Скорее всего такой перебор возможен только через хитрую функциЮ, которой раньше не было.


> [35] ЗапомниСынок   (07.12.07 09:32)

Не факт, что с закрытыми окнами будет работать, с перекрытыми точно работает. Еще вопрос как оно будет с StayOnTop. Но это легко проверяется.


ЗапомниСынок   (2007-12-07 09:32:00) [4]

Я в свое время хотел написать простенький бот для PartyPoker, пытался считывать инфу со стола, несколько дней возился, пытаясь снять скрин-шот с закрытого окна, так и не удалось. Оказывается плохо искал...


KSergey   (2007-12-07 07:10:00) [5]

Прикольно, при этом написано, что WM_PRINT поддержана на NT 4.0 and later, а вот PrintWindow - XP and .NET Server.
Однако же: This function [PrintWindow] is similar to WM_PRINT


turbouser   (2007-12-07 00:55:00) [6]


> @!!ex ©

Заставил таки меня влезть в мсдн :-)


homm   (2007-12-06 23:58:00) [7]

> [31] @!!ex ©   (06.12.07 23:55)
> PrintWindow работает заметно быстрее чем перебор окон у
> TopDesk'a

Справку по PrintWindow внимательно читал? Устраивают ограничения? Ты вроде хотел, что-бы в 2к тоже работало.


@!!ex   (2007-12-06 23:55:00) [8]

> [30] homm ©   (06.12.07 23:54)

PrintWindow работает заметно быстрее чем перебор окон у TopDesk'a. так что это не правильный метод, ИМХО


homm   (2007-12-06 23:54:00) [9]

> [27] @!!ex ©   (06.12.07 23:41)
> Фича в том, что даже если окно обновилось на заднем фоне,
> то при переключении с помощью TopDesk'а оно все равно будет
> с корректной информацией.

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


@!!ex   (2007-12-06 23:53:00) [10]

Ну короч вопрос решенный.
PrintWindow получает изображения любого окна.
Единственно, после работы нужно InvalidateRect(0,nil,true); сделатЬ, чтобы изображение на экране было нормальное.


@!!ex   (2007-12-06 23:42:00) [11]

> Я же говорил :))

Ты был не прав.
Читай 27. В процессе работы он никакие окна на передний план не выносит.


@!!ex   (2007-12-06 23:41:00) [12]

> [25] homm ©   (06.12.07 23:37)

Ну и как окна которые были видимы при запуске TopDesk скажутся на переключении окон в процессе работы?
Фича в том, что даже если окно обновилось на заднем фоне, то при переключении с помощью TopDesk'а оно все равно будет с корректной информацией.


turbouser   (2007-12-06 23:39:00) [13]


> homm ©   (06.12.07 23:34) [22]

Я же говорил :))


homm   (2007-12-06 23:37:00) [14]

> [24] @!!ex ©   (06.12.07 23:36)

При запуске TopDesk.


@!!ex   (2007-12-06 23:36:00) [15]

> [22] homm ©   (06.12.07 23:34)

При запуске чего?


@!!ex   (2007-12-06 23:35:00) [16]

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


homm   (2007-12-06 23:34:00) [17]

> [20] @!!ex ©   (06.12.07 23:27)

http://soft.mydiv.net/win/download-TopDesk.html
???

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


@!!ex   (2007-12-06 23:27:00) [18]

> [19] homm ©   (06.12.07 23:25)

Под XP она работает. Если я правильно помню, под 2000 тоже.


@!!ex   (2007-12-06 23:27:00) [19]

Ты так докапываешься, какбудто я себя зарекомендовал как брехун редкостный.


homm   (2007-12-06 23:25:00) [20]

> [18] @!!ex ©   (06.12.07 23:24)

Вроде?


Страницы:   1 2

Наверх

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