Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Отрисовка курсора на скриншоте ломает сохранение картинки
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Коллеги, нужен совет. Есть код на delphi XE3 который создает скриншот экрана и сохраняет его в bmp файл. Сам код рабочий и проблем не вызывает. Но в него добавлена отрисовка указателя мыши (курсора) где он в момент принтскрина находился и через 6000-10000 выполнений, сохранение файлов прекращается. Ошибок нет, но и не создается файл. Сам код отрисовки курсора отдельно: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Я явно что-то очевидное упускаю, но не могу сообразить что не так делаю. Весь код процедуры создания принтскрина: Код: pascal 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. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. В коде ключевые места с проверками на пустые значения и обвязаны логированием, но ошибок не пишется, а файлы картинок через в среднем 6-10 тыс. снимков перестают создаваться. Если код отрисовки курсора убрать, то все работает хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2021, 21:31 |
|
||
|
Отрисовка курсора на скриншоте ломает сохранение картинки
|
|||
|---|---|---|---|
|
#18+
SilverShield, код не читал, но цифра 10 тыс наводит на мысль что теряется какой-то GDI хендл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2021, 21:38 |
|
||
|
Отрисовка курсора на скриншоте ломает сохранение картинки
|
|||
|---|---|---|---|
|
#18+
Посмотри хэндлы в таскменеджере. Ещё вариант, комп за это время не лочится/в спячку не уходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2021, 21:45 |
|
||
|
Отрисовка курсора на скриншоте ломает сохранение картинки
|
|||
|---|---|---|---|
|
#18+
Когда компьютер лочится или отключается по бездействию, то пользователь теряет доступ к рабочему столу, соответственно никаких скриншотов сделать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2021, 23:25 |
|
||
|
Отрисовка курсора на скриншоте ломает сохранение картинки
|
|||
|---|---|---|---|
|
#18+
Выкинуть этот и подобный код SilverShield Код: pascal 1. 2. 3. 4. 5. 6. 7. Код: pascal 1. 2. 3. 4. 5. 6. 7. На каждое создание объекта свой вложенный try-finally, снаружи один try-except ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2021, 23:35 |
|
||
|
Отрисовка курсора на скриншоте ломает сохранение картинки
|
|||
|---|---|---|---|
|
#18+
msdnGetIconInfo creates bitmaps for the hbmMask and hbmColor members of ICONINFO. The calling application must manage these bitmaps and delete them when they are no longer necessary . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2021, 09:36 |
|
||
|
Отрисовка курсора на скриншоте ломает сохранение картинки
|
|||
|---|---|---|---|
|
#18+
Коллеги, благодарю за ответы! Комп не лочится, там похоже что на самом деле хэндлы переполняются. Но без отрисовки курсора код стабильно работает и десятками тысяч снимков и больше. Значит именно для структуры курсора я неправильно обрабатываю. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Как тут будет правильно освободить хэндл и bitmap? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2021, 14:28 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=22&tid=2037444]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
96ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 28ms |
| total: | 235ms |

| 0 / 0 |
