![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получиьт изображение окна?
@!!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)
Вроде?