- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
提供VNC代码搞清楚下面几个问题-CSTO
读代码 答疑问
本项目需要对VNC 有较深刻的认识,并且有丰富的网络编程经验,否则可能花费的时间会比较多,懂行的人一天应该就搞定了。看完本文后,请首先到 /l?g=1357sharekey=c0095474b635eeaebda9708b390bed12 下载 我提供的代码和驱动,并运行DEMO。如果下载不了,请在站内留言。
代码是Uvnc官网(/ )上下载的,应该是没有问题的。现在编译时候会出现一些错误,应该主要是环境的问题,因此首先需要把环境准备好,把代码修改好,确保全部代码都能正常编译(要求用VS2013编译)。应该将整理过程记录下来,比如安装了什么环境,修改了哪里代码(如果有修改),应该有文档进行详细记录和说明,同时将需要安装的环境软件或具体下载地址提供给我。编译好后,请提供一个能vmware 的虚拟机文件(WIN7 64位系统+VS2013),压缩后发给我(分包压缩即可,估计有十几G吧),这样万一我这边搭建不了环境,可以直接在你提供的虚拟机里编译代码。
保证代码能正常编译后,请阅读代码,并在文档里详细说明下面的疑问。主要需要搞清楚下面3个问题,您需要根据我的疑问,将VNC 实现的机制和相对应部分的代码写出来(应该主要在Winvnc部分),并详细的说明。
希望了解VNC以服务启动后,在WIN7系统环境下,登陆时(界面在用户登陆窗口时)、切换用户、注销用户、锁定用户后,仍旧可以正常远程控制的原因,应该是Session 的选择方面的问题(切换、注销用户后,VNC会自动断开,但重连后,依旧可以连上)。
VNC 可以使用HOOK和驱动两种方式截屏,想弄清楚,VNC 如果以服务启动方式启动,能否在不使用 HOOK,只选用驱动的情况下仍旧能正常工作(最好是注销掉HOOK截图部分的代码,仅使用驱动来测试),如果仅使用驱动不能工作,请说明原因。驱动已经提供在福建中,WIN7 下使用VISTA64 的驱动即可,你也可以到UVNC 的官网下官方提供的最新驱动。附件里还有一个DEMO ,是您必须要看的。
测试时,尤其需要测试下面这三个环境条件:
仅使用驱动,电脑启动后在登陆窗口时,能否进行控制。
仅使用驱动,切换、注销用户后还能否控制屏幕(断开后如果重连还能控制,也算正常)。
仅使用驱动能否控制非管理员级别的用户。
想了解 VNC在WIN7下 实现发送 ctrl+alt+del 按键的原理。
请在文档里解释原理,并说明对应的代码处所。现在最希望知道的就是第2点,VNC能否在只调用驱动的情况下仍旧能正常控制。
对于第一点疑问,有网友进行了分析(如下文),感觉有道理。观察WinVnc.exe(VncServer)的运行情况,发现实际现象也的确如其所分析的一样,但是不知道在代码里是否如其所说的那样的实现,以下分析仅供参考。
UltraVNC在WIN7下(服务启动模式),在用户登陆窗口,切换用户、注销时,仍能控制的分析。
由于win7下,服务程序不能截取用户桌面,用户桌面也看不到服务程序,需要在用户桌面再创建一exe来进行捕捉屏幕等操作。VNC大致的解决办法就是:在WIN7下,如果Winvnc.exe(VNCServer)是以服务方式启动,在系统进程里,你会发现有两个Winvnc.exe的进程 都是system用户的。其中一个进程估计是用来维持服务,判断活动桌面的,简称为父程序(只是随意起个名字,不代表具体意义),另外一个进程是由父程序在当前用户桌面下创建的( 简称为子程序,随意起的名而已),子程序用来获取当前桌面屏幕操作,并实现一些具体功能。只不过在进程管理器中,都显示为system用户,但是子程序其实是由父程序创建的,父程序会守护子进程,如果你结束掉子程序,父程序会重启它。
如下图 ,注意两个Winvnc.exe都是 SYSTEM 服务的,它们的会话ID是不一样的,内存占用小的那个应该是父程序。
如果你人为强行结束掉父程序,只保留子程序,那么一样可以进行连接,控制等操作。父程序如果被强行结束后,你在服务管理器里会看到VNC 的服务已经停止了,因为父程序是维护服务的。父程序如果被强制结束,当你切换了用户或注销后,就不能再看到原来的屏幕了(除非登录回原来的用户)。因为父程序没有了,不知道你切换了用户,父程序要监 控是否执行了切换用户,注销等操作,如果你执行注销、切换用户等操作,那么父程序会结束掉原来的子程序,然后在新登录的用户下重新创建一个子程序(exe),获得新的用户桌面, 这样能保证接上后能看到新用户的屏幕。从实际现象上来说,切换用户时候,会自动退出一个Winvnc.exe 然后进入新的用户后又会新增加一个Winvnc.exe (子程序),新生成后,才可以连接。
两个Winvnc.exe 的进程中,内存占用小的那个进程是父程序,内存
您可能关注的文档
最近下载
- 新质生产力在非物质文化遗产保护传承与创新发展中的应用研究.docx VIP
- 年产2000吨植物源农药、生物农药项目环境影响报告书.doc VIP
- 心电图远程会诊流程图-2.pdf VIP
- 华能烟台发电厂2×9F级燃气蒸汽联合循环热电联产项目环评报告表.docx
- 施工管理软件:Procore二次开发_(5).Procore项目管理模块二次开发.docx VIP
- 施工管理软件:Procore二次开发_(3).Procore数据模型与数据库结构.docx VIP
- 征信报告模板带水印可编辑2025年4月版.pdf
- 安全管理软件:Procore二次开发_(1).Procore二次开发概述.docx VIP
- 建設分野特定技能2号評価試験练习题.doc
- 2025清洁生产-清洁生产(精选试题) .pdf VIP
文档评论(0)