将近年末,《核心编程》一书终于要看完了。最近,对Win7的桌面好奇非常!下面总结一下关于,windows虚拟桌面的设计方案,以及编程过程中get的一些小知识!
Windows的工作站和桌面:
Windows的工作站包括自己的剪贴板,全局原子表(global atoms),和若干个桌面!用户登录时,系统会为用户创建一个名为Winsta0的交互式窗口站!简单,来说Winsta0基本上可是认为是用户和系统的交互媒介!!
默认的Winsta0包含三块桌面,即工作界面,登录窗口桌面,屏幕保护桌面!!!
关于这个工作站,我没有查阅太多资料,貌似对编写桌面应用来说,这是一个比较冷门(不常用)的内容!
Windows的桌面包含属于他的一系列窗口以及专属HOOK链表,windows允许我们使用CreateDeskTop创建属于自己的桌面(HDESK),并且可以让我们在不同的桌面之间切换!
我们使用Spy++,我们可以看到我们的类型名是"#32769"的窗口,其他所有的窗口都派生自这个匿名窗口!这个匿名窗口下有一个名为Program Manager(Progman)的子窗口,这个窗口有一个派生链:Program-----SHELLDLL_DefView-----SysListView32,其中SHELLDLL_DefView相当于桌面的功能层,SysListView32相当于桌面的显示层。
但我们切换到自定义的桌面时,桌面上什么都没有