|
Как служба под системной учеткой может получить скриншот экрана активного пользователя
|
|||
---|---|---|---|
#18+
Здравствуйте! Делаю сервис, который будет снимать скриншот экрана текущего (активного) пользователя и записывать его в файл BMP. Служба устанавливается и запускается под системной учетной записью. Компилятор Bloodshed Dev C++ 5.6.3 Вот текст main.cpp: Код: 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. 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.
Best regards, Ildar ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 12:25 |
|
Как служба под системной учеткой может получить скриншот экрана активного пользователя
|
|||
---|---|---|---|
#18+
Проблема в том, что файл создается, но он не содержит нули, т.е. черный экран. В файле нет самого скриншота. Как сделать так, чтобы там был скриншот? Заранее Благодарю! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 12:27 |
|
Как служба под системной учеткой может получить скриншот экрана активного пользователя
|
|||
---|---|---|---|
#18+
Грубо говоря в файле картинки чернота и все. А хотелось бы снимок экрана пользователя. _Ildar_, ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 12:28 |
|
Как служба под системной учеткой может получить скриншот экрана активного пользователя
|
|||
---|---|---|---|
#18+
Выбрать правильную WinStation из всех, имеющихся в EnumWindowStations. Выбрать правильный Desktop для этой WinStation из имеющихся в EnumDesktops. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 13:32 |
|
Как служба под системной учеткой может получить скриншот экрана активного пользователя
|
|||
---|---|---|---|
#18+
_Ildar_Компилятор Bloodshed Dev C++ 5.6.3 Это текстовый редактор, а-ля IDE, но отнюдь не компилятор. При использовании Dev C++ компилятором является GCC из MinGW или же TDM-GCC Начиная с Windows Vista все сервисы/службы работают на WinSta0 (Windows Station), которая специально под них и выделена. Пользователи при интерактивном логоне попадают в другую WinSta. Внутри каждой WinSta может быть несколько десктопов (по факту используется только лишь один). Поскольку сервисы/службы живут на WinSta0, то и взаимодействовать с пользователем через GUI примитивы могут лишь в рамках того десктопа, который есть на этой самой WinSta0. Вот начиная с Vista на эту WinSta0 пользователи никогда не логинятся, а зайдя в систему всегда попадают в другую WinSta. Потому сервису/службе надо спрашивать ОС есть ли интерактивно залогиненный пользователь и на какой именно из WinSta. После этого получать доступ к GUI-примитивам, типа окон приложений на десктопе в этом WinSta. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 14:43 |
|
|
start [/forum/topic.php?fid=57&msg=39751363&tid=2017699]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 124ms |
0 / 0 |