您的位置:首页 > 编程语言 > C语言/C++

VC++6.0服务编程时第一次了解关于 Window Station(窗口站)和 Desktop(桌面)的东东

2009-11-18 14:12 197 查看
窗口站:

一个窗口站(Window Station)包含一个剪贴板对象、一个原子表对象、一个或多个桌面对象。每一个窗口站都是一个安全对象,当一个窗口站被创建时,窗口站和调用它的进程相关联,并且被分配给当前的调用。在交互式窗口站中,只有WinSta0能够呈现一个用户界面或接收用户的输入动作,它常常被分配给一个已登陆的交互式用户,还包括键盘、鼠标、显示器。其它的非交互式窗口站,不能呈现用户界面或接收用户的输入动作。当一个用户登陆到一台计算机上,系统会为其创建一个会话,每一个会话都拥有自己的交互式窗口站WinSta0。

桌面:
一个桌面是一个逻辑上的显示界面,它包括用户界面对象像窗口,菜单,钩子;在一个窗口站中它可以被创建和管理。每一个桌面对象是一个安全对象,当它被创建时,它和当前调用进程的窗口站相关联,并且被分配给当前的调用线程。只有在一个相同的桌面框架下,进程之间才能进行消息传递。另外,一个运行在特定桌面框架下的进程的钩子仅仅能够接收到在相同桌面下创建的钩子的窗口消息。桌面和交互式窗口站Winsta0相关联,能够为用户提供输入输出服务,同一时刻只有一个桌面是活动的,可见的桌面才能接收用户的输入动作。可以使用OpenInputDesktop获取你需要的桌面,使用SwitchDesktop在不同的桌面之间进行切换操作。默认情况下,Winsta0有3个桌面,默认桌面,登陆桌面,屏保桌面。当登陆用户启动一个进程时就会创建一个作用于当前用户的默认桌面,你可以同时按住Ctrl+Alt+Delete切换登陆桌面。无论何时屏保桌面都是活动可用的,未保护的屏保运行Winsta0/default下。

参考:MSDN2005
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: