我有一个获取屏幕截图的 Windows服务.但它只创造了黑屏.我知道这是因为会话0隔离.我在互联网上搜索,无法找到任何批准的解决方案来解决这个问题,任何工作的想法都会非常好. 1-有没有
1-有没有办法更改Windows服务的会话并获取其他用户会话的桌面屏幕,如会话1,会话2?
2-有没有办法启动一个控制台应用程序,该应用程序在Windows服务的会话0以外的另一个会话中运行?
Is there a way to change the session of a windows service and get the desktop screen of another user’s session like session 1, session 2?
没有.
Is there a way to start a console application which runs in an another session other than session 0 from a windows service?
这可以做到,但它很混乱.它涉及模拟登录用户,操纵用户令牌,以及使用CreateProcessAsUser()将进程启动到不同的会话.这篇文章describes需要什么.
另外,您不需要控制台应用程序,因为这会在屏幕截图上显示控制台窗口.您只需要一个标准的Windows应用程序(使用GUI子系统),但不需要显示任何可见的窗口.