Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 217
1
.NET 4.x

Как получать изображения рабочего стола через сервисы

16.04.2017, 10:38. Показов 706. Ответов 8
Метки нет (Все метки)

Получаю изображение вот так:

C#
1
2
3
4
5
6
7
8
9
  Rectangle bounds = Screen.PrimaryScreen.Bounds;
            Bitmap screenshot = new Bitmap(bounds.Width, bounds.Height, PixelFormat.Format32bppArgb);
            Graphics graphic = Graphics.FromImage(screenshot);
            try
            {
                graphic.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy);
            }
            catch (Win32Exception) { }
            screenshot.Save(@"C:\Users\admin\Desktop\test.jpg");
Если запускать этот код через обычный скомпилированный EXE, но если я создаю службу, то я никак не могу получить скриншот рабочего стола(или другой области). Как мне можно с помощью C# получать скриншоты от службы Windows?

Добавлено через 3 минуты
P.S. Тут сделать пример, в реально проекте я отдаю изображение клиенту, который запросил изображение. Если запускать сервер от имени пользователя, то изображения приходят, а если от имени службы, то ничего. Использую WCF
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2017, 10:38
Ответы с готовыми решениями:

Изобретение велосипеда, как тренировка студента. Передача видео или изображения рабочего стола по сети
Собственно, есть задание и коротко оно звучит так: "написать то, что будет передавать видео или...

Изменение изображения рабочего стола
Нужно изменить фон. рис. рабочего стола без перезагрузок и т.п., использую...

Обработка изображения рабочего стола
Всем доброго времени суток. По задаче для начала нам необходимо получить скрин с экрана, после...

Смена изображения рабочего стола
Доброго времени суток. Возможно ли организовать контейнер, где будет храниться изображение, которое...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
8
Ушел с форума
Эксперт С++
16420 / 7395 / 1185
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
16.04.2017, 10:50 2
Цитата Сообщение от Garde Посмотреть сообщение
но если я создаю службу, то я никак не могу получить скриншот рабочего стола(или другой области). Как мне можно с помощью C# получать скриншоты от службы Windows?
Никак. На то они и службы, чтобы работать неинтерактивно, вне пользовательских сеансов.
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 217
16.04.2017, 10:55  [ТС] 3
Ну, а как работает тогда всякого рода VNC, Radmin, TeamViewrer. Я же могу посмотреть изображение(видео-поток), даже когда не зашел пользователь. Значит там работает как-то на службах?
0
Ушел с форума
Эксперт С++
16420 / 7395 / 1185
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
16.04.2017, 11:40 4
Я повторю свое сообщение: задача получать изображение рабочего стола из службы в
Windows не решается. Никак. Службы работают в отдельной от пользователя неинтерактивной
сессии/оконной станции.
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 217
16.04.2017, 11:47  [ТС] 5
Как это можно реализовать помимо служб?
0
Ушел с форума
Эксперт С++
16420 / 7395 / 1185
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
16.04.2017, 11:59 6
А почему вариант с запуском сервера от имени пользователя не подходит?
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 217
16.04.2017, 12:28  [ТС] 7
Например, если под ПК, зашел сначала один пользователь - у него загрузилась программа(он занял порт для передачи информации клиенту). Пользователь просто заблокировал свою учетную запись. Зашел другой пользователь, программа уже не может запустить сервер, т.к. уже порт занят.

Я сделал костыль. С помощью Планировщика заданий, сделал, что бы программа закрывалась при блокировании и открывалась при разблокировании учетной записи. Но это как-то не очень...

Добавлено через 14 минут
Можно как-нибудь взаимодействовать с видеокартой? Как получать от туда изображения?
0
Ушел с форума
Эксперт С++
16420 / 7395 / 1185
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
16.04.2017, 14:56 8
Цитата Сообщение от Garde Посмотреть сообщение
Например, если под ПК, зашел сначала один пользователь - у него загрузилась программа(он занял порт для передачи информации клиенту). Пользователь просто заблокировал свою учетную запись. Зашел другой пользователь, программа уже не может запустить сервер, т.к. уже порт занят.
Так это решается иначе: у каждого пользователя в его сеансе запускается отдельная копия
программы, которая делает скрины экрана. Тогда не будет иметь значение, сколько
пользователей залогинено. Хоть тысяча.
0
Модератор
Эксперт .NET
5304 / 4100 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
17.04.2017, 05:43 9
Цитата Сообщение от Garde Посмотреть сообщение
Зашел другой пользователь, программа уже не может запустить сервер, т.к. уже порт занят.
Решается самым простым и очевидным способом - динамическим формированием адреса сервера с подстановкой свободного порта (который перед этим надо найти). Не думали над этим?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2017, 05:43

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Положение изображения фона рабочего стола
Доброго времени суток! Столкнулся с такой проблемой: меняю положение фона рабочего стола на любое...

Положение изображения фона рабочего стола
Помогите пжлста!!!!!!! Не могу поменять положение изображения фона рабочего стола на windows 7!...

Как организовать через dlna показ рабочего стола со звуком на телевизоре
День добрый! На ПК стоит домашний мультимедийный сервер на ПК Windows7. По wifi или кабелю можно к...

Трансляция изображения рабочего стола на сервер (сайт)
Всем привет. Есть задача, разработать приложения (VS 2010 С++) для трансляции изображения рабочего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.