Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
1

Сервис

08.07.2013, 20:02. Показов 995. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
у меня есть приложение, которое делает скрин монитора и отправляет подключенным к нему компам
Но проблема стоит в следующем когда я запускаю это приложение как сервис
то все скрины черные.
как тут разрешить? предполагаю что с правами доступа наверное?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2013, 20:02
Ответы с готовыми решениями:

Web-сервис на C++?
предыстория такова: встретились,как-то,два совсем начинающих на С++.И как обычно завели "умный"...

Свой сервис
Добрый день! На других языках делал некий сервис с функциями, который потом подключал в файле с...

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

Препод задал повторить сервис на с++
Есть интернет сервис - ip-calculator.ru Препод задал повторить его на с++. Часть уже...

11
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
08.07.2013, 21:02 2
В Windows службы по умолчанию запускаются в отдельной, неинтерактивной рабочей станции, а
на Vista и выше - вообще в отдельной сессии. Так что делать из службы скриншот бессмысленно,
она работает в изолированном от пользователя окружении. Так было сделано намерено, в
целях безопасности.

Добавлено через 7 минут
Цитата Сообщение от Убежденный Посмотреть сообщение
неинтерактивной рабочей станции
Опечатался. Правильно "оконной станции".
2
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
08.07.2013, 21:02  [ТС] 3
Спасибо, хм, как можно по другому поступить?
или как это объяснить преподавателю?
0
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
08.07.2013, 21:04 4
Цитата Сообщение от HardMorg Посмотреть сообщение
Спасибо, хм, как можно по другому поступить?
Отказаться от службы. Если нужно, чтобы приложение стартовало автоматически,
поместить его в обычную автозагрузку.
0
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
08.07.2013, 21:10  [ТС] 5
по заданию было что бы как службой было...
0
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
08.07.2013, 21:20 6
Цитата Сообщение от HardMorg Посмотреть сообщение
по заданию было что бы как службой было...
Значит, задание было составлено людьми, плохо представляющими себе
архитектуру и назначение служб Windows.

Но если очень надо, можно сделать так: отлавливать в службе моменты входа
пользователей в систему, затем создавать в соответствующих сессиях интерактивные
процессы, которые будут делать скриншоты. Что технически намного сложнее того
решения с автозапуском, которое я приводил выше, а по смыслу это одно и то же,
только в первом случае Вам нужно лишь добавить одну запись в реестр, а во
втором - разбираться со служами терминалов и WTS-функциями, отслеживать
состояние сессий, работать с токенами безопасности и т.п.

Кстати, Вам могут посоветовать добавить в конфигурацию службы флаг
SERVICE_INTERACTIVE_PROCESS, он же галочка "разрешить взаимодействие с рабочим
столом" в ее настройках. Не слушайте этих "советчиков", данный способ будет работать
только на системах до Vista и только для первого пользователя, вошедшего в систему.
1
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
08.07.2013, 21:34  [ТС] 7
Я правильно вас понял? в сервисе мы просто запускаем другое приложение?
0
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
08.07.2013, 21:44 8
Цитата Сообщение от HardMorg Посмотреть сообщение
в сервисе мы просто запускаем другое приложение?
Если "просто" запустить, новое приложение унаследует контекст безопасности службы,
как любой процесс это делает от своего родительского процесса. Проще говоря,
никаких скриншотов и там Вы увидеть не сможете.

Так что здесь нужно сначала оследить вход пользователя в систему и узнать ID сессии, в
которой он залогинился, затем дождаться, пока сессия придет в активное состояние,
затем, имея ID пользователя, получить у системы его маркер безопасности, и только
потом с этим маркером создать новый процесс. А еще учесть, что первый вход в
систему может произойти до запуска службы. А еще учесть, что некоторые функции
на ранних стадиях загрузки системы не работают, нужно будет дождаться запуска
службы удаленных рабочих столов. А еще... И так далее, и тому подобное.
Думаете, оно того стоит ?
1
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
08.07.2013, 21:49  [ТС] 9
Думаю нет, не стоит.....
хмм но вот мне вспомнилось... есть же всякие приложения для удаленного управления столом, тимвивер и другие
и на сколько я знаю они тоже скрины передают... но там значить это не в службе?
0
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
08.07.2013, 21:55 10
Цитата Сообщение от HardMorg Посмотреть сообщение
есть же всякие приложения для удаленного управления столом, тимвивер и другие
и на сколько я знаю они тоже скрины передают... но там значить это не в службе?
Нет. TeamViewer и Ammyy Admin, например - это обычные десктопные приложения.
0
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
08.07.2013, 21:57  [ТС] 11
Убежденный, я спросил.... ответили что нужно копать в сторону терминальных сессий( то что ВЫ и говорили), не подскажете где про это почитать
0
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
08.07.2013, 22:14 12
В MSDN.
0
08.07.2013, 22:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2013, 22:14
Помогаю со студенческими работами здесь

Подскажите сервис карт с API под C++
Ищу сервис карт с API под C++. Чего-то неверотного не жду, если можно будет просто получить...

Писать сервис на мобильные платформы стандартно (нативно, под каждую отдельно) или Qt/C++ (кросплатформенно)?
Друзья, хэлп! Ведём переговоры с разными командами разработчиков. Встали перед сложным выбором....

Поднять asmx-сервер и клиентом на C++ достучаться до методов сервака (как добавить ссылку на веб-сервис?)
Всем доброго времени суток! Стоит задача поднять asmx сервис (сервер) и клиентом на с++...

Структуры ПО "Сервис-центр"
Составляю внешние файлы определенной структуры. Заполняю их данными. Составляю запросы к файлам....


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru