3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
|
|
1 | |
Сервис08.07.2013, 20:02. Показов 995. Ответов 11
Метки нет (Все метки)
у меня есть приложение, которое делает скрин монитора и отправляет подключенным к нему компам
Но проблема стоит в следующем когда я запускаю это приложение как сервис то все скрины черные. как тут разрешить? предполагаю что с правами доступа наверное?
0
|
08.07.2013, 20:02 | |
Ответы с готовыми решениями:
11
Web-сервис на C++? Свой сервис Структуры Сервис центра Препод задал повторить сервис на с++ |
Ушел с форума
|
|
08.07.2013, 21:02 | 2 |
В Windows службы по умолчанию запускаются в отдельной, неинтерактивной рабочей станции, а
на Vista и выше - вообще в отдельной сессии. Так что делать из службы скриншот бессмысленно, она работает в изолированном от пользователя окружении. Так было сделано намерено, в целях безопасности. Добавлено через 7 минут Опечатался. Правильно "оконной станции".
2
|
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
|
|
08.07.2013, 21:02 [ТС] | 3 |
Спасибо, хм, как можно по другому поступить?
или как это объяснить преподавателю?
0
|
Ушел с форума
|
|
08.07.2013, 21:04 | 4 |
Отказаться от службы. Если нужно, чтобы приложение стартовало автоматически,
поместить его в обычную автозагрузку.
0
|
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
|
|
08.07.2013, 21:10 [ТС] | 5 |
по заданию было что бы как службой было...
0
|
Ушел с форума
|
|
08.07.2013, 21:20 | 6 |
Значит, задание было составлено людьми, плохо представляющими себе
архитектуру и назначение служб Windows. Но если очень надо, можно сделать так: отлавливать в службе моменты входа пользователей в систему, затем создавать в соответствующих сессиях интерактивные процессы, которые будут делать скриншоты. Что технически намного сложнее того решения с автозапуском, которое я приводил выше, а по смыслу это одно и то же, только в первом случае Вам нужно лишь добавить одну запись в реестр, а во втором - разбираться со служами терминалов и WTS-функциями, отслеживать состояние сессий, работать с токенами безопасности и т.п. Кстати, Вам могут посоветовать добавить в конфигурацию службы флаг SERVICE_INTERACTIVE_PROCESS, он же галочка "разрешить взаимодействие с рабочим столом" в ее настройках. Не слушайте этих "советчиков", данный способ будет работать только на системах до Vista и только для первого пользователя, вошедшего в систему.
1
|
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
|
|
08.07.2013, 21:34 [ТС] | 7 |
Я правильно вас понял? в сервисе мы просто запускаем другое приложение?
0
|
Ушел с форума
|
|
08.07.2013, 21:44 | 8 |
Если "просто" запустить, новое приложение унаследует контекст безопасности службы,
как любой процесс это делает от своего родительского процесса. Проще говоря, никаких скриншотов и там Вы увидеть не сможете. Так что здесь нужно сначала оследить вход пользователя в систему и узнать ID сессии, в которой он залогинился, затем дождаться, пока сессия придет в активное состояние, затем, имея ID пользователя, получить у системы его маркер безопасности, и только потом с этим маркером создать новый процесс. А еще учесть, что первый вход в систему может произойти до запуска службы. А еще учесть, что некоторые функции на ранних стадиях загрузки системы не работают, нужно будет дождаться запуска службы удаленных рабочих столов. А еще... И так далее, и тому подобное. Думаете, оно того стоит ?
1
|
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
|
|
08.07.2013, 21:49 [ТС] | 9 |
Думаю нет, не стоит.....
хмм но вот мне вспомнилось... есть же всякие приложения для удаленного управления столом, тимвивер и другие и на сколько я знаю они тоже скрины передают... но там значить это не в службе?
0
|
Ушел с форума
|
|
08.07.2013, 21:55 | 10 |
0
|
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
|
|
08.07.2013, 21:57 [ТС] | 11 |
Убежденный, я спросил.... ответили что нужно копать в сторону терминальных сессий( то что ВЫ и говорили), не подскажете где про это почитать
0
|
Ушел с форума
|
|
08.07.2013, 22:14 | 12 |
В MSDN.
0
|
08.07.2013, 22:14 | |
08.07.2013, 22:14 | |
Помогаю со студенческими работами здесь
12
Подскажите сервис карт с API под C++ Писать сервис на мобильные платформы стандартно (нативно, под каждую отдельно) или Qt/C++ (кросплатформенно)? Поднять asmx-сервер и клиентом на C++ достучаться до методов сервака (как добавить ссылку на веб-сервис?) Структуры ПО "Сервис-центр" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |