桌面是包含在窗口站内的安全对象。桌面具有逻辑显示面,包含窗口,菜单和挂钩。一个窗口站可以有多个桌面。只有交互式窗口台的桌面才能看到并接收用户输入。在交互式窗口台上,一次只能有一台桌面。这个活动的桌面,也称为输入桌面,是当前对用户可见的并且接收用户输入的桌面。应用程序可以使用OpenInputDesktop函数来获取输入桌面的句柄。具有必要访问权限的应用程序可以使用SwitchDesktop函数来指定不同的输入桌面。
不可见的非交互式窗口站使得无法访问交互式窗口站的Win32服务启动GUI应用程序。在非交互式窗口中运行的应用程序无法接收输入或可见。例如,调度服务可以使用此支持来启动交互式窗口站不可访问的远程计算机上的GUI备份应用程序。有关详细信息,请参阅互动服务en.
应用程序可以使用以下功能来操作桌面对象:
功能 | 描述 |
CloseDesktop | 关闭指定的桌面。 |
CreateDesktop | 在指定的窗口站上创建一个新的桌面。 |
EnumDesktops | 通过重复调用应用程序定义的EnumDesktopProc回调函数来枚举指定窗口台上的桌面。 |
EnumDesktopWindows | 通过重复调用应用程序定义的EnumWindowsProc回调函数来枚举指定桌面上的窗口。 |
GetThreadDesktop | 返回分配给调用线程的桌面的句柄。 |
GetUserObjectInformation | 获取有关窗口站或桌面对象的信息。 |
GetUserObjectSecurity | 获取窗口站或桌面对象的安全信息。 |
OpenDesktop | 打开现有桌面的句柄。 |
SetThreadDesktop | 将一个指定的桌面分配给调用线程。 |
SetUserObjectInformation | 设置有关窗口站或桌面对象的信息。 |
SetUserObjectSecurity | 设置窗口站或桌面对象的安全信息。 |