虚拟桌面(老板桌面)

    前段时间用Linux Mint,有四个虚拟桌面,非常的好用,特别是看PPT的时候,不用退出播放就可以回到桌面上来。可惜Windows下没有这个功能,所以自己写了一个小工具,虽然名字叫虚拟桌面,其实都是真实的桌面啦。

    跟Linux下的相比,还是有些不一样。虽然也是通过 Ctrl+Alt+方向键 来选择桌面,但是我写的程序中,每个方向键是直接对应一个桌面,在Linux中,方向键对应的桌面是相对的,即按某个方向切换到下一个桌面。我这种设计一是考虑设计方便,二是觉得直接切换更方便。

   不幸的是,这些快捷键跟QQ音乐的快捷键冲突了,反正一般情况下我不用QQ音乐的快捷键(况且本本有独立多媒体键),所以,我直接把QQ音乐的快捷键改成别的了...

    编写的过程还是挺曲折的。一开始考虑用MFC写,但是碰到个小问题,不创建窗体的话,托盘图标创建后立刻消失(就是在App的InitInstance方法中创建托盘图标,MFC我不熟,哪位高手给我解释下原因感激不尽)。后来想直接用Windows的API来写,发现问题依旧。然后就考虑用C#来写(用P/Invoke),别看在C++下才用了那几个API,转到C#后,用那些个API实在太麻烦了(主要是类型转换,写个小程序不想搞这么麻烦啦)。无奈了..想用C++封装个DLL来供C#调...后来想想,一开始放弃MFC是自己太执于不创建窗体(我觉得白白浪费资源),于是乎干脆直接把窗体隐藏了事,绕了个大弯又回来了....

   我对MFC实在是外行,代码就不好意思贴上来了,附上可执行文件以便有同样需求的朋友。版权所有,盗版不究~

   参考API:OpenDesktop、CreateDesktop、SwitchDesktop、SetThreadDesktop、CreateProcess、Shell_NotifyIcon、RegisterHotKey
http://msdn.microsoft.com/en-us/library/ms687107(v=VS.85).aspx

----------------------------------------

我在公司的XP电脑上竟然没成功。。。不知道是因为我编译的SDK是WIN7的还是公司用了域。。。。我装了Win7后成功了。。。。附上代码,供使用XP调试编译


 

你可能感兴趣的:(职场,休闲,虚拟桌面)