|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Примеров скриншота в нете множество, как сделать скриншот. Например, самый простой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Проблема в том, что в скриншот не попадают окна, имеющие _расширенный_ стиль, например, полупрозначные. Всякие красивые часики, квипы и т.п. Вот такая форма не попадает: Код: plaintext 1. 2. 3.
Как можно сделать полный скриншот? Ведь по кнопке Принтскрин, к примеру, в буфер обмена попадает нормальная картинка, значит, это как-то можно реализовать? Без эмуляции нажатия принтскина и засорения буфера :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 16:13 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Me.hwnd - это hwnd вашего окна, оно кэпчурится. замените его на хэндлер окна десктопа ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 16:15 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Konst_OneMe.hwnd - это hwnd вашего окна, оно кэпчурится. замените его на хэндлер окна десктопа стоп, не в тему. с прозрачностью не в курсе ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 16:16 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
> Автор: Guest v.22 > >>> PlgBlt <<< Me.hDC, Pt(0), GetDC(0), 0, 0, _ Может воспользоватся BitBlt??? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 17:30 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
вот, сделал 2 функции, самому потом пригодятся Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 18:47 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Guest v.22 Без эмуляции нажатия принтскина и засорения буфера :)) в предыдущем посте я как раз эмулировал нажатие принтскрин и буфер потом очищается, но ты можешь сделать сохранение и востановление буфера ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 18:55 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
ну а если хочешь без засорения буфера, то вот Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 19:16 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
блин засада, поторопился, не проверил)) такой здоровый код из msdn да еще и не "снимает" формы типа SetWindowLong Me.hwnd, GWL_EXSTYLE, Ret .... бррр ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2010, 19:19 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Игорь Горбонос, Пробовал BitBlt - тоже самое. ak787, Жалко, что не получилось... с кнопкой принтскрина возиться не хочется, да и не гламурно как-то :) ... Мне кажется, что засада тут: GetDC(0). Причем, если пробовать с GetDC(GetDesktopWindow), то результат получается такой же, хотя у меня GetDesktopWindow отлично от нуля. Может, есть еще какое какое окно, о котором знает только виндоус, и GetDC с которого даёт нужный результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2010, 15:02 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В продолжение к теме. Возникла задача снять скриншот со второго экрана на системе с двумя мониторами. Как?! Есть подозрение, что GetDC(0) надо заменить на GetDC(другое) . Пробовал через EnumDisplayMonitors выловить это другое , но не смог даже "0" для первого монитора выловить. Если кто знает, что надо делать или видел ссылку на рабочий пример скриншота со второго монитора, буду благодарен. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2014, 11:38 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Guest v.22Есть подозрение, что GetDC(0) надо заменить на GetDC(другое) .dc у всех мониторов один, просто за счет дополнительных мониторов у него расширены координаты. если основной монитор правый, то дополнительная часть оси x будет отрицательна. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2014, 20:20 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Antonariy, Понятно, спасибо. Т.е. надо выловить координаты "полного" экрана и поменять соответствующие величины в PlgBlt? Как бы их узнать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2014, 12:01 |
|
В скриншот экрана попадает не всё
|
|||
---|---|---|---|
#18+
Аа, полный экран можно через GetSystemMetrics выловить. Осталось узнать координаты каждого отдельного экрана. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2014, 12:15 |
|
|
start [/forum/topic.php?fid=60&msg=38744004&tid=2156214]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 244ms |
0 / 0 |