- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚拟桌面原理及实现
虚拟桌面原理及实现?文章作者:不赖猴 2009-02-02?一、为什么要使用虚拟桌面。?场景一、上班的时候,我们经常会趁老板不注意,去一些工作时间不应该去的网站,或是运行一些不应该运行的程序,比如一些聊天工具,小游戏,股票软件等等。而且,经常会打开一大堆。当老板或其他同事来到你的桌前的时候,你正在手忙脚乱的关着这些程序,而且,还来不及保存想要保存的东西。?场景二、在你给别人做讲演的时候,需要在电脑桌面上展示很多资料。当然一个桌面经常是远远不够展示的,而且,需要经常的切换画面,由于打开的资料太多,每次还的任务栏里找上一阵。很影响讲演的流畅性。?虚拟桌面程序就是用来解决以上的问题。场景一、你可以用虚拟桌面程序同时生成多个桌面。一个桌面打开着你工作的资料,程序等等。一个桌面打开着你的聊天工具及一些你不想别人看到的东西。当然你还可以用一个桌面放一些你想访问的网站啊,股票信息啊等等。剩下的只是简单的按一下快捷键来切换不同的桌面。?场景二、同场景一,你可以用虚拟桌面程序生成多个桌面,把要讲演的资料提前分配到多个桌面。剩下的只是简单的按一下快捷键来切换不同的桌面。?二、虚拟桌面实现原理?1. 原理概况?每次开机的时候,我就创建多个桌面,然后定时监控快捷键(Ctrl+数字键),如果有快捷键被按下,就切换到数字键对应编号的桌面。?2.什么是桌面??每一个运行着Window NT 的系统中都有一个Window 工作站对象,这个对象是安全对象的第一层,是所有用户安全对象的继承之源,每一个Window 工作站对象可以拥有一些桌面对象,每一个桌面都拥有一个窗口链。窗口链里存放着显示在所属桌面的各种窗口。Window NT 用了两个桌面窗口对象,一个是用来处理登陆界面、屏蔽、锁住工作站等,一个是我们登陆之后进来操作的窗口了。Window NT通过explorer.exe进程来管理这个桌面对象。这就是为什么我们在任务管理器里杀掉explorer.exe,我们的桌面就会消失的原因。?3.创建一个桌面。?function CreateANewDesktop(DesktopName: string): Boolean;var?sin?? : TStartupInfo;?pin?? : TProcessInformation;?hDesk : HDESK;begin?result := false;?hDesk := CreateDesktop(PChar(DesktopName),nil,nil,0,MAXIMUM_ALLOWED,nil);?try?? FillChar(sin,SizeOf(sin),0);?? sin.cb := SizeOf(sin);?? sin.lpDesktop := PChar(DesktopName);???? CreateProcess(PChar(WindowDirectory+explorer.exe),nil,nil,nil,False,0,nil,nil,sin,pin);???? Sleep(2000);???? result := true;? finally???? CloseDesktop(Desk);? end;end;?4.查询当前已经存在的桌面。?枚举桌面的API是EnumDesktops.BOOL EnumDesktops(? HWINSTA hwinsta,??????????????????????????? // 当前的WindowsStation句柄? DESKTOPENUMPROC lpEnumFunc,?????? // 回调函数,由系统调用。? LPARAM lParam??????????????????????????????? //传递给回调函数的参数指针);通常我们定义个一回调函数,定义一个全局TStringList类对象,在回调函数里将枚举到的桌面的名称增加到TStringList里。?var ? sttopList : TStringList;?function EnumDesktopProc(Desktop: LPTSTR; Param: LParam): Boolean; stdcall;begin? if (DesktopWinlogon) and (DesktopDisconnect) then? ???? DesktpList.Add(DeskTop);? result := True;end;?procedure EnumerateDesktops;begin?? EnumDesktops(GetProcessWindowStation, @EnumDesktopProc, nil);end;??5.切换桌面。?procedure DesktopSwitch(Des
您可能关注的文档
- 2012上海英语中考一模试题及答案 闵行区.doc
- 中国式词汇的英文翻译方法7.doc
- 齐齐哈尔大学化学专业实验甘氨酸合镍配合物的逐级稳定常数的测定.doc
- 必修6 unit1 40min 限时闯关.doc
- iPhone起步.docx
- 反身代词专题训练.doc
- libgdx工程设置.doc
- CADLISP函数.doc
- absent oneself from 缺席.doc
- 美华盛顿州[花六年]使法律“中性化”.doc
- 渤海汽车2025年第三季度报告.pdf
- 【生物】湖南省部分学校2025-2026学年高三上学期9月联考(学生版).pdf
- 第五章 一元一次方程(单元解读课件)数学人教版2024七年级上册.pdf
- 【生物】湖南省部分学校2025-2026学年高三上学期9月联考(解析版).pdf
- 【生物】湖北省部分高中协作体2025-2026学年高二上学期9月联考(学生版) .pdf
- 华斯股份:2025年三季度报告.pdf
- 安徽省蚌埠市蚌埠第二中学2025-2026学年高二(上)开学检测物理试卷.pdf
- 安徽省六安市裕安区2024-2025学年高二生物上学期12月月考(解析版).pdf
- 安徽省皖南八校2024-2025年高二生物上学期期中考试(解析版).pdf
- 第五章 一元一次方程(复习课件)数学人教版2024七年级上册.pdf
原创力文档


文档评论(0)