在玩Ubuntu的时候,对Compiz的桌面非常的着迷。总喜欢在别人面前炫耀自己的配置。多么多么的炫。
就在前天给Ubuntu升级的时候,不小心把系统给搞挂掉了。跟以前一样,心一狠,就全盘格式化,所有资料也就没了,还有美丽的桌面。
然后就又装回了windows。现在对ubuntu的桌面效果依然淡化,所以以后就在虚拟机里装一个server就得了。
从09年10月开始就几乎没怎么玩过Linux了。因为工作是搞windows的。天空好像一下子变窄了。
api api
原来windows也这么好玩。
下面就跟我一起记录一下windows的学习路程吧。
开篇第一篇就说windows中的Desktop。想好linux下的比一比。
1 给自己创建一个Desktop
在windows中可以用CreateDesktop来创建一个Desktop、在windows中Desktop是隶属于Windows Station的。
所以你必须给你的Desktop指定一个Station。最方便的做法是在当前的Station中创建一个Desktop.
先看看MSDN上的说明吧 http://msdn.microsoft.com/en-us/library/ms682124(VS.85).aspx
恩,我就不多说了。在windows下编程一定要装一个msdn的。
2 在新创建的Desktop中创建一个Explorer。
现在已经有了一个新的Desktop,你切换过去的时候会看到她是蓝色的什么都没有。所以我们要在这个桌面那啥启动一个explorer
这里用到CreateProcess。相信大家都熟悉这个api。把他贴出来,也就不多说了。用他启动一个explorer
这时候我们已经创建了一个Desktop并且在她那启动了一个Explorer。可是现在我们还不知道她具体长啥样子。为啥?我们还没有能够切换到我们新创建的Desktop中去。现在哪里还是一片世外桃源。
3 SwitchDesktop
函数原型如下
好了,我们知道,只要我们有一个桌面的句柄的话,我们就能调用这个api来非常方便的切换桌面了。
那么这个桌面的句柄从哪来呢? 相信你已经看到CreateDesktop返回的就是那个桌面的句柄。
这里还有一个api OpenDesktop可以用来打开桌面并且返回桌面句柄。
函数原型如下
现在我们可以创建一个桌面,并且能够打开并且切换到新的桌面了。在这里我要提醒你的是,一定要把你的切换桌面的程序写的好一点,不然有可能你会遇到非常麻烦的事情,比如说你切换到了新的桌面,切不回去了。
我遇到过一种非常傻得事,我在调试程序的时候在切换桌面的方法中下了一个断点。我不用再说 你也明白。。。。
4 CloseDesktop
桌面句柄是需要close掉的,不然这些一直占用的句柄会带来很多麻烦
5 EnumDesktops
6 OpenInputDesktop
打开活动桌面,返回活动桌面的句柄
7 SetThreadDesktop
把当前线程塞到指定桌面去
另外还有几个相关的api 我就不一一介绍了。那样会显得很罗嗦。
我正在装VS2008。等装好之后再贴一个Sample过来。
Sample CreateDesktop
Sample SwitchDesktop
Sample EnumDesktops
Sample SwitchDesktopEx
怎么关闭它呢?
桌面是个逻辑概念。只要把与桌面关联的进程全部砍掉,桌面也就消失了。