Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
#1

Сервис - C++

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

у меня есть приложение, которое делает скрин монитора и отправляет подключенным к нему компам
Но проблема стоит в следующем когда я запускаю это приложение как сервис
то все скрины черные.
как тут разрешить? предполагаю что с правами доступа наверное?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2013, 20:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сервис (C++):

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

Препод задал повторить сервис на с++ - C++
Есть интернет сервис - ip-calculator.ru Препод задал повторить его на с++. Часть уже выполнена, калькулятор может считать адресс...

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

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

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

Laravel расскажите про сервис провайдеры и сервис контейнеры - PHP
Всю доку перечитала, все равно ничего понять не могу про них. Везде пишут, что это центральные штуки в ларавеле, но я никак не могу понять...

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

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

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

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

Так что здесь нужно сначала оследить вход пользователя в систему и узнать ID сессии, в
которой он залогинился, затем дождаться, пока сессия придет в активное состояние,
затем, имея ID пользователя, получить у системы его маркер безопасности, и только
потом с этим маркером создать новый процесс. А еще учесть, что первый вход в
систему может произойти до запуска службы. А еще учесть, что некоторые функции
на ранних стадиях загрузки системы не работают, нужно будет дождаться запуска
службы удаленных рабочих столов. А еще... И так далее, и тому подобное.
Думаете, оно того стоит ?
1
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
08.07.2013, 21:49  [ТС] #9
Думаю нет, не стоит.....
хмм но вот мне вспомнилось... есть же всякие приложения для удаленного управления столом, тимвивер и другие
и на сколько я знаю они тоже скрины передают... но там значить это не в службе?
0
Убежденный
Ушел с форума
Эксперт С++
15929 / 7239 / 1140
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
08.07.2013, 21:55 #10
Цитата Сообщение от HardMorg Посмотреть сообщение
есть же всякие приложения для удаленного управления столом, тимвивер и другие
и на сколько я знаю они тоже скрины передают... но там значить это не в службе?
Нет. TeamViewer и Ammyy Admin, например - это обычные десктопные приложения.
0
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
08.07.2013, 21:57  [ТС] #11
Убежденный, я спросил.... ответили что нужно копать в сторону терминальных сессий( то что ВЫ и говорили), не подскажете где про это почитать
0
Убежденный
Ушел с форума
Эксперт С++
15929 / 7239 / 1140
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
08.07.2013, 22:14 #12
В MSDN.
0
08.07.2013, 22:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2013, 22:14
Привет! Вот еще темы с ответами:

сервис - C++ WinAPI
возник вопрос по созданию служб может кто сможет помочь?.Для создания процесса с одним сервисом,надо иметь 3 ...

C# и сервис no-ip - C#
Пишу сервер клиент приложение столкнулся с проблемой что изза NAT у меня оно не работает через интернет (в локалке все нормально...

сервис u-on.ru - PHP
Здравствуйте, у меня проблемка. Есть туристический сервис, нужно туда заявки чтобы попадали после заполнения формы на сайте, у них только...

WinXp сервис - C++ WinAPI
Есть программное обеспечение, которое включает в себя сервис. На win7 работа его была стабильной. В момент запуска сервис читает переменную...


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

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

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