![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
nda |
|
||||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
Добрый день. Народ подскажите пожалуйста.
Пишу сервис для винды, суть его очень просто через определенное время делает снимок экрана. Но проблема в следующем когда запускаю сервис мне вместо снимков экрана сохраняется белый фон, а когда тот же код запускаю с переложения все нормально. Вот код
и еще вот такой использовал
Подскажите как сделать так чтобы с сервиса (службы) тоже снимок экрана делался нормально. |
||||
|
|||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
если коротко - то никак.
А теперь немножко подробнее: у каждого пользователя в Windows - своя сессия, свой рабочий стол, свой экран. Это же относится и к сервисам - у них свой рабочий стол под учетной записью LOCAL SYSTEM (или другой - в зависимости от типа логина). Времена, когда сервис мог подключиться к активной сессии пользователя минули с окончанием эры Windows XP. Начиная с Vista разделение жесткое, без права на амнистию. Разные сессии не могут получить доступ к объектам друг друга. Это относится в том числе к Inter-process communications - самый распространенный механизм (Send и PostMessage) не работает между сессиями. Остаются другие способы (MMF, NamedPipes, TCP/IP...), но у них нужно явно указывать права доступа. К чему я это все? Непосредственно из сервиса сделать снимок активного рабочего стола нельзя - у него другая сессия. Для того, чтобы совершить подобное сервису нужно: 1. Запустить новый "обычный" процесс от имени активной учетки. 2. Соединиться с ним через любой вид межпроцессного взаимодействия, позволяющий работать из разных сессий 3. Отправить команду в приложение "дай мне снимок экрана" и получить от нее данные. На форуме есть темы, как сделать это всё. Емнип, в основном - в разделе WinAPI. Поищите... |
|||
|
||||
nda |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 28.3.2011 Репутация: нет Всего: нет |
спасибо за помощь kami.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |