Форум программистов, компьютерный форум CyberForum.ru

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

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

Сервис - C++

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SMS сервис - Pascal ABC
Доброго времени суток! Есть интересная задачка: SMS-сервис. Существует SMS-сервис знакомств. Каждый из участников заплатил за знакомство...

VPN сервис - Сети
существуют ещё бесплатные впн сервисы?

Собственный сервис - Visual C++
Требуется написать пару сервисов. Первый - пустой (ничего не делает), при запуске должен очутиться в списке запущенных сервисов. Второй...

веб-сервис и бд - C# ASP.NET
доброе время суток. задание - написать веб-сервис который умеет подключаться к бд - брать и записывать данные. вопрос - чем лучше...

Почтовый сервис - C#
У меня еще вот какой вопрос, я хочу написать некое подобие программы (программа-запрос), с использованием Windows Forms. Цель, это конечно...


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

Или воспользуйтесь поиском по форуму:
Убежденный
Системный программист
Эксперт С++
15297 / 6929 / 1096
Регистрация: 02.05.2013
Сообщений: 11,340
Завершенные тесты: 1
08.07.2013, 22:14     Сервис #12
В MSDN.
Yandex
Объявления
08.07.2013, 22:14     Сервис
Ответ Создать тему
Опции темы

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