2010-12-05 73 views
0

我一直在开发作为Windows服务运行的远程桌面应用程序,我想知道如何将应用程序连接到特定会话,并允许它检索用户的桌面作为位图,设置光标位置,发送鼠标点击和键盘输入到控制台会话。如何将Windows服务连接到控制台会话

回答

1

您需要使用SetThreadDesktop()将服务中线程的上下文更改为用户的桌面。

  • SetThreadDesktop()因为是第一个参数,所以需要桌面句柄;要获得该处理,请使用EnumDesktops()
  • EnumDesktops()由于它是第一个参数,因此会处理窗口工作站;获得该句柄,使用EnumWindowStations()

要了解发生了什么事情与窗口站和台式机,尝试从MSDN阅读this overview

最后,谨慎使用这种技术。与用户桌面交互的更高特权的进程(即服务)是shatter attacks的基础。

+0

谢谢!这正是我正在寻找的! – IDWMaster 2010-12-05 19:56:54

相关问题