Привет! Есть сервис который посылает скриншот десктопа в сеть... в сервисе есть код SetProcessWindowStation(OpenWindowStation("WinSta0", FALSE, MAXIMUM_ALLOWED)); SetThreadDesktop(OpenDesktop("Default", 0, FALSE, MAXIMUM_ALLOWED)); для переключения на десктоп юзера... Сервис нормально работает в winxpsp2, 2000, 2003, т.е. скриншот показывается нормально... а в висте только черный экран. Зашел в свойства сервиса там поставил галку Вход в систему через системную учетную запись + Разрешить взаймодействе с десктопом, проблема не решилась. Кто-нибудь с этим сталкивался? Спасибо!
Уже искал в инете решение проблемы... ничего полезного. Кстати, обе ф-и для переключения на десктоп юзера возращают 1, т.е. успешно. Еще пробывал OpenDesktopInput, та же байда. Также в статусе сервиса поставил dwServiceType SERVICE_INTERACTIVE_PROCESS, опять проблема не решилась.
Плохо ты друг искал: http://www.microsoft.com/whdc/system/vista/Vista_Services.mspx Session 0 isolation has a number of implications for services, including the following: • Services cannot use PostMessage or SendMessage to send messages to user applications. All applications are running in Session 1 or higher and have a different message queue. Applications cannot send Windows messages to a service for the same reason. Services that send messages to applications must use mechanisms such as remote procedure calls (RPCs) or named pipes. • Services that have a UI, such as a dialog box, cannot display it directly in Windows Vista. Services that require user interaction must handle it indirectly. For simple interactions, services can display a message box in the user's session by calling WTSSendMessage. For more complex interactions, services must use an approach such as calling CreateProcessAsUser to create a UI process in the user's session. That process handles user interaction and communicates with the service through RPC or named pipes. For further information about Session 0 in Windows Vista and guidelines for writing Windows Vista services, see the white paper titled Impact of Session 0 Isolation on Services and Drivers in Windows Vista, which is listed in "Resources" at the end of this paper. Running services and user applications in the same session creates a number of security issues. To address those issues, Windows Vista makes two significant changes to Session 0: • Session 0 is reserved exclusively for services and other applications that are not associated with an interactive user session. User applications must run in Session 1 or higher. • Session 0 does not support user interfaces. In particular, processes that are running in Session 0 do not have access to the graphics hardware and cannot directly display any UI on the monitor.
накопал что-ть? та же проблема... не ясно как сделать сервис, который бы делал скриншоты десктопа юзера... при этом не запускать доп программ и выстраивать с ним связь через пайпы