Здравствуйте. У меня следующая ситуация. Написал сервис (который работает не под юзером, а под 'Local system') и немогу понять как получить правильно скриншот. Тоесть все стандартные методы известные мне неработают, например через GetDC получаю полностью белый экран, а через hdcScreen := CreateDC('DISPLAY', nil, nil, nil); получаю полностью черный экран. Сколько гуглил находил похожие ситуации но без ответов. Подскажите пожалуйста если кто знает как правильно получить скришот? Хотя-бы в какую сторону смотреть?
Копать в сторону OpenWindowStation/SetProcessWindowStation/OpenDesktop/SetThreadDesktop, где-то вроде даже исходник проскакивал.
Погуглить например http://209.85.135.104/search?q=cache:Mc--boAViEAJ:www.governmentsecurity.org/forum/lofiversion/index.php/t19161.html+SetThreadDesktop+CreateCompatibleDC&hl=ru&ct=clnk&cd=4&client=opera
Мож я глупый вопрос задаю но не понял, а какой собсна скриншот нужен? От экрана какого юзера? У разных юзеров разные экраны. Юзеров может быть несколько. Тут IMHO надо что-то из области ImpersonateProcessAsUser() юзать... Я не прав?