毕业论文-基于VC++远程控制系统的设计_第1页
毕业论文-基于VC++远程控制系统的设计_第2页
毕业论文-基于VC++远程控制系统的设计_第3页
毕业论文-基于VC++远程控制系统的设计_第4页
毕业论文-基于VC++远程控制系统的设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宿 州 学 院 毕 业 论 文 论文题目 基于 C+远程控制系统的设计 系 别 信息工程学院 专 业 计算机科学与技术 班 级 09 专升本 1 班 学 号 2009110457 学生姓名 刘伟伟 指导教师 (签名) 完成时间 2011年 3 月 I 摘要 随着计算机信息现代工业的发展 , 计算机远程 控制 管理系统越 来越受到 各方面的 重视。本文主要分析了远程 控制 系统的一些基本功能和组成情况 , 包括系统的需求分析、系统结构、功能模块划分分析等 , 重点对应用程序的实际开发实现作了介绍。达到了实时性和安全性 , 且应用程序功能完备。同时简单介绍了 + 程环境和 功能特点。 本课题设计是为适应远程控制及协助的要求 , 使远程 控制 提高到计算机的实时水平而设计的。远程 控制 包括多项内容 , 本课题设计只是承建 了其中的一部分即:实时 控制 。本课题设计 为一个通信应用程序 , 用到了多项技术 , 诸如:异步模式向对象编程、软件工程思想 、 。 本系统 采用 + 为开发工具 , 整个系统操作简洁、界面友好、功能灵活、实用,实现了包括客户端屏幕监控、文件监控及传输、进程监控、系统服务和注册表监控 等 基本功能, 基本完成了远程 控制 中 所 需要到 的主要功能 。 关键词 : 套接字 面向对象 软件工程 远程 监控 of on + of is by of of of to of It + 6.0 of at is in to on by to up of a of of + + 6.0 as a of is is is of to 目录 第一章 绪论 . 1 课题背景 . 1 目的以及意义 . 1 第二章 开发平台的理论基础 . 2 +及编程模式简介 . 2 系统架构的模式 . 5 术简介 . 6 的简单介绍 . 7 第三章 需求分析 . 9 系统基本情况描述 . 9 系统可行性分析 . 9 功能需求分析 . 10 系统流程图 . 12 第四章 总体设计 . 13 使用工具 . 13 系统模块的设计 . 13 第五章 系统详细设计 . 17 客户端与服务器连接设计 . 17 系统各模块界面设计及其实现 . 18 第六章 系统测试 . 32 软件测试基础 . 32 本系统采用的测试方法 . 32 第七章 总结 . 35 参考文献 . 36 附录 . 37 致谢 . 44 1 第一章 绪论 课题背景 通常企业内部或者 任务是通过电话解答疑难问题,努力减少技术人员到现场服务或者让用户把设备送到支持中心进行维护。这种技术支持方式尽管被普遍采用,但效率不高而且大大增加了技 术支持成本。 通常,技术支持必须依赖技术人员和用户之间的口头交流来进行,这种交流既耗时又容易出错。许多商业用户对计算机知之甚少,然而当遇到问题时,他们必须向技术人员提供故障情报及相关操作。在尝试解决问题时,技术人员可能指导用户执行一系列复杂的过程,而这些过程对用户来说或许完全不熟悉;如果用户不能正确的按要求操作,反而使问题恶化。此外,如果通过电话不能解决问题,那么 在 技术人员亲自到用户现场解决问题之前,计算机将 无法继续 使用 ,导致工作延误 。 目的以及意义 本文正是在 上文提到的 背景下提出的 , 目的 就 是为了 解决计 算机的远程操作,降低企业对软件的后期维护成本,设计出一款远程控制 系统 。 远程 控制 系统 能使技术人员直接操作远程计算机,就像操作本地机器一样,无须用户介入,技术人员技能得到该机器的问题的第一手材料,从而加快了问题的解决。实际上,使用远程 控制 工具的技术人员能够做到解答疑难问题,安装和配置软件,把软件下载到用户计算机上,配置应用程序和系统软件设置并可通过实际操作培训用户。 总之,本课题的设计与实现具有很大的现实意义。 2 第二章 开发平台的理论基础 +及编程模 式简介 +的简介 +的资源编辑器能以所见即所得( is 形式直接编辑程序的用户界面,为所有资源分配 识号。 把对话框模板与生成的类定义或与已有的类代码连接起来,为菜单项、控制等资源生成空的处理函数模板,创建消息映射条目,并将资源 处理函数连接起来。通过使用 序员的编程工作便简化为用资源编辑器直观的设计界面,完善对话框类代码,在空的处理函数模板处填写响应用户操 作的代码,这是一种比较完善的可视化编程方法。 但产品名 “ +” 也容易误导人,让人认为自己使用的是一个与似的完全可视化的系统。然而,使用 +,开发人员必须真正地阅读和编写 C+代码。 +向导可以节省时间和提高精度,但是,程序员也必须理解向导产生的代码,并且,最重要的是,还必须理解 的结构和 作系统的内部工作方式 7。 应用程序框架 应用程序框架的一种定义是:提供一般应用程序需要的全部面向对象软件组件的集成集合。 C+流行的一个原因是它可以用类库扩充。类库是可在应用程序中使用的有关 C+类的集合。应用程序框架是类库的超集。一般的类库只是一种孤立的类的集合,用来嵌入在任何程序中,但是,应用程序框架却定义了程序的结构。自从 发布以来, 经成为主要的 库。使用 库构建应用程序具有以下优点: 1. 是 C+的 2. 应用程序框架生成的应用程序使用了标准的 结构,具有标准化的用户接口,这对具有标准用户界面的 序来说,可以极大的减轻程序员的负担,使程序员不必过多地考虑界面,可把主要精力放在程序设计上,以提高程序设计的效率。 3. 使用应用程序框架的应用程序不仅小,而且运行速度快,具有很大的灵 3 活性。 装了 的几乎所有函数,能实现 统的任何功能。 4. 架降低了编码的复杂性。 5. 应用程序框架有丰富的特性,如: C+接口、通用的(非 特有的)类、 “共用根对象 ”类层次结构、流线式多文档界 面( 用程序支持等。 6. 强大的功能。除封装了大部分的 数外, 提供了应用程序本身的数据和操作及 操作类。 架的核心是文档 /视图结构( 这是一个很好用、但又往往较难以入门的功能。简单的说,文档 /视图结构就是将数据和对数据的观察或数据的表现(显示)相分 离。文档仅处理数据的实际读、写操作,视图则是显示和处理数据的窗口,视图可以操作文档中的数据 7。 消息映射 在使用 +进行 序设计时,消息映射是一个非常重要的概念。用程序是消息驱动的,应用程序不能直接得到用户所做的操作,如鼠标按键、键盘输入和窗口移动等。这些操作由操作系统管理,操作系统检测到操作事件后,便向相关的应用程序发送消息,应用程序响应这些消息来完成用户的操作。 1 消息 的消息是操作系统与应用程序之间、应用程序 与应用程序之间、应用程序各对象之间相互控制与传递信息的方式。 消息的基本格式如下: 消息名称; 与消息相关的 参数; 与消息相关的 参数。 消息主要有以下 3 类。 统消息: 统向窗口发送的消息,由窗口( 视图( 行响应处理。这类消息包括除 息之外的名称以 控制通知消息:控制或子窗口传给父窗口的 知的消息。 命令消息:在响应用户接口操作时,将产生 令消息。其参 4 数指定了用户接口的标识号,如菜单项和按钮等 。 2 消息映射过程 在使用 建应用程序时, 用程序框架设置了相应的消息处理函数来响应消息,以完成相应的操作。消息处理函数是某些类(通常是窗口类)的成员函数和程序员在其中编写响应消息时应进行操作的代码。 框架将消息和它们的处理函数连接起来就是消息映射。消息映射使应用程序在接收到消息时调用对应的消息处理函数来响应和处理消息。 创建新类时将为其创建一个消息映射,并为每个类能响应的消息 和 命 令 增 加 对 应 的 处 理 函 数 。 在 源 代 码 中 , 消 息 映 射 开 始 于,结束于 ,中间由一系列预定义的被称为 “ 条目宏 ” 的宏组成。其基本格式如下: 条目宏 1 条目宏 2 条目宏 3 /) 其中 拥有消息映射的当前类名, 当前类的父类名。条目宏定义了类所处理的消息与其对应的函数。常用的条目宏类型如表 示。 表 消息映射条目宏 消息类型 宏格式 说明 息 息名 命令 D,命令标识号, 更新命令 D,命令标 识号, 控制通知 D,控制标识号, 用户定义消 D,消息标识号, 息 为处理函数名 用户注册消息 D,消息标识号, 息的处理函数在 中进行了预定义,类库以消息名为基础定义这些处理函数的名称,且 求所有消息处理函数 声明为 型。例如,消息 处理函数在 中的声明如下: ; 通过 派生类中用同样的原型定义处理函数并为该函数生成消息映射条目,然后由程序员编写处理函数代码,并在派生类中覆盖了其父类的消息处理函数。在有些情况下,必须在派生类的消息处理函数中调用其父类的消息处理函数,使 基类能对消息进行处理。 在生成的处理函数中建议是否应调用父类的消息处理函数及调用的次序。除此之外,用户定义和注册的消息、命令和控制通知都没有默认的处理函数,需要在定义时声明,一般根据其 称来为函数命名 7。 系统架构的模式 C/S 结构,即 户机 /服务器 )结构, 软件系统体系结构,通过将任 务 合理分配到 和 ,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。 C/S 模式即 构模式 构,它的发展经历了两个阶段:从两层结构到三层结构。 1. 两层结构:它由两部分构成:前端是客户机,通常是 要完成用户界面显示,接受数据输入,校验数据有效性,向后台数据库发请求,接受返回结果,处理应用逻辑;后端是服务器,运行 供数据库的查询和管理。应用逻辑主要在前端,如在后端则是存储过程的形式。 2. 三层结构:利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上来分的,具体的物理分法可以有多种组合。基于三层结构的应用系统不但具备了大型机系统稳定、安全和处理能力高等特性,同时拥有开放系统成本低、可扩展性强、开发周期短等优点。而中间件作为构造三层结构应用系统的基 础平台,提供了以下主要功能:负责客户机与服务器间、服务器间与服务器间的联接和通讯;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。 6 , 服务器端首先监听一个固定端口,客户端再连接到服务端,此时服务端执行 作,以接受客户端的连接 。 此时连接创建成功,则进行数据传输,待数据传输完毕,服务端和客户端就断开连接。 图 2 通信流程 C/S 结构的优点 术在目前程序开发中得到了广泛的应用 , 这种技术的优点在于它将处理工作按照一定的比例分配到客户端和服务器上去执行,这样减少了网络传输的工作量,从而合理地利用了资源,提高了应用程序开发的效率。由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。 术 简介 统下的编程,消息 传递是贯穿其始终的。这个消息可以简单理解为一个有特定意义的整数,正如老故 事片中的 “ 长江长江,我是黄河 ”一个含义。 定义的消息给初学者的印象似乎是 “ 不计其数 ” 的,常见监听 创建 接受 数 据 传 输 断开 连接 创建 数 据 传 输 断开 7 的一部分消息在 文件中定义。 消息有着非常密切的联系,它的中文含义是 “ 钩子 ” ,这样理解起来不难得出 “ 消息处理中的一个环节,用于监控消息在系统中的传递,并在这些消息到达最终的消息处理过程前,处理某些特定的消息 ” 。这也是 为不同种类的原因。 在 经常 接触到 用的 天随着控件, 术的出现, 诸如控件这些现成的手段不能实现的功能时,因此 还需要借助 初有些人对某些 产生了如何修改这些 之更好的服务于程序的想法,这样 过 变一个系统 本的方法就是通过 接触 ”到需要修改的 变它的地址指向新的自定义的函数。 3类 以说, 什么特别不同的 也需要通过基本的 越不同进程间访问的限制,达到修改 的简单介绍 通过类名就知道这是一个异步非阻塞 什么是异步非阻塞呢?举个例子:一位体育老师,需要测验 100位同学的 400米 成绩。 老师 每隔 10秒让一位同学起跑,直到所有同学出发完 毕;另一边每有一个同学回到终点就记录成绩,直到所有同学都跑完。 老师 设计了两个函数, 其中一个函数记录起跑时间和学生号,该函数会主动调用 100次;另一个函数记录到达时间和学生号,该函数是一个事件驱动的 有同学到达终点时,被动调用。 老师 主动调用的函数是异步的,因为 调用它 时 ,它并不会 立刻返回 ;这个函数也是非阻塞的,因为一旦调用它,它就马上返回, 不用等待就可以再次调用它。 这就是异步非阻塞模式。 然而,最不容易被初学 是本课题最要提醒的一点是,客户方在使用 时,往往返回一个 其它的某些函数调用也如此 ,如: ,等 ) ,实际上这不应该算作一个错误,它是 醒 用户 ,由于使用了非阻塞以 ( 连接 ) 操作需要时间,不能瞬间建立。 因此 可以 在程序中 等待 ,等它连接成功为止,于是许多程序员就在调用 之后, ),然后不停地用 或者 查看 8 直到返回成功为止。这是一种错误的做法, 不能达到预期 目的。事实上, 可以在调用之后等待 事件被触发,是要表明 么连接彻底失败了 。 9 第三章 需求分析 系统基本情况描述 随着计算机技术的不断发展, 人们 要处理的任务也越来越多, 工作地点也有可能是多个,在计算机使用的过程中就会遇到这样那样的问题 ,从而使得工作变得更加繁重 。 如果将计算机系统进行还原或重装,一些重要 资料有可能将会丢失。寻求一种方便、高效的方法对出现故障的系统进行修复已经成为人们的迫切需要 。本课题设计 的使用,能帮助技术人员方便、高效的修复远程系统软件,提高人们的工作效率,降低系统维护的成本 。 系统可行性分析 可行性研究的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的方法。 可行性分析实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。 要研究每一种解法的可行性,一般说来,应从经济可行性、技术可行性、 操 作可行性 等方面研究可行性 12。 经济可行性 本课题设计 成本低廉,要的只是两个 发的 址,而且这也多用于局域网或企业网等内网,就更谈不上成本上的问题。但是如果需要对程序的质量提高可以购买 加密 算法,对传输数据进行加密。 技术可行性 本课题设计 所用到的一系列的技术已是累积了几十年的技术,这些技术在这么多年的发展中并没有被淘汰,反而是越来越来热门。当初远程 协助 这门技术在 是受网络的制约,但是此时这门技术还是受网络技术制约着。网络流量的问题是造成所有通信 程序的不稳定性的罪魁祸首。但是 本课题设计 在局域网中是完全能够实现的,而且也是专门为企业网内部所设计,因为数据信息没被加密,如果想走 需建立 操作可行性 根据系统的操作是否简单易懂,是否为用户所接受,从操作的角度研究系统的可行性。 本课题设计 操作简单,客户端安装后无需其它操作,服务端待客户端 10 自动连接后,则可以对其屏幕、文件、注册表等进行操作,完全像操作本地机器一样简单 。 综合以上三方面的可行性分析, 本课题设计 的操作 是可行的。 功能需求 分析 功能需求是对软件系统的 一项基本需求,这方面的需求指定系统必须提供的服务。 根据对 一般的远程协助 的调查了解, 该系统应该至少包含以下几个功能 : 1. 服务端对 客户端的屏幕监控 。 远程协助系统就是 要 解决那些 难以 用语言描述的软件问题, 协助端(服务端)如果能实时的看见被协助端(客户端)的系统桌面,那将大大提高解决 问题的效率。 当然,为了更方便的操作,协助端还 必须能 控制被协助端的鼠标和键盘 。 系统 服务端 桌面监控 的 用例图如图 3 图 3面监控 用例图 2. 服务端对客户端文件操作 。 服务端如果仅仅能监控客户端桌面,那帮助也许没那么大,比如客户端要修复一些文件,而在客户端本地硬盘中又没有相应的修复工具,此时服务端也是无能为力的。当然,可以通过 通讯工具传输,这样做毕竟也是很麻烦的,因此服务端能实现对客户端 的 文件 远程操作则是不可或缺 的。 文件操作包括:上传文件、下载文件、修改文件名、创建文件夹、执行远程程序 等等 。 该 功 能 模 块 的 用 例 图 如图 3示 : 获取远程桌面 控制远程鼠标 控制远程键盘 远程协助系统 11 图 3件操作用例图 3. 服务端对客户端的高级操作 。 对于维护和修复一个系统,难免要与系统注册表、 系统 服务、进程打交道,在桌面监控功能中虽然能实现对这些功能的操作,但是毕竟受到网络带宽的限制,远程桌面图片传输较慢,实时性较低。 服务端向客户端发送一条命令,客户端针对该命令分别枚举出客户端的注册表、系统服务、进程等,再以文本方式发送给服务端,服务端获取到信息后,则可以对注册表、系统服务、进程做删除、添加、结束等操作。 4. 消息广播 。 服务端可以同时被多个客户端连接,消息广播则合适企业或学校的管理 。 在该功能中,服 务端有权限阻止客户端发送的广播消息,也有权限向某一客户端发送消息。 5. 自动上线 。 自动上线其实就是一种反弹式连接,该功能 只需 应用在服务端动态的情况 下 。服务端首先要拥有一个动态域名,假设为: ,然后将此时服务端的 新到一个页面中,如: ,客户端则不断去访问该页面,以便获取服务端最新的 后连接到服务端。 6. 进程守护。对于企业或学校的多客户端连接,为了能使得管理顺利进行,则需对客户端进程进行保护,防止被恶意结束。 上传文件到客户端 下载客户端文件 修 改文件名 远程协助系统 创建文件夹 执行远程程序 12 系 统流程图 安装好客户端后,客户端则会不断的尝试连接服务器, 连接成功了就会根据服务端发送的操作命令执行不同的操作,再将结果返回给服务端 ,本系统流程图如图 3示 : 图 3统流程图 连接服务端 连接成功 ? 客户端程序 服务端程序 接受并添加客户端信息 失败 成功 发送 登 录 信息 发送操作命令 解析命令 屏幕操作 文件操作 注册表操作 服务操作 进程操作 发送结果 显示结果 是否退出? 退出系统 是 否 13 第四章 总体设计 经过需求分析阶段,在软件需求分析阶段已经弄清楚了 各种需求,较好地解决了所开发的系统 “ 做什么 ” 的问题,并已在软件需求说明书和数据要求说明书中详尽和充分地阐明了这些需求以后,下一步就要着手对软件系统的结构、数据结构、用户界面等进行设计 。 使 用工具 本系统采用 + 为开发工具 ,客户端调试使用 拟机 。 系统模块的设计 模块设计 本系统面向的对象有两种,一种是 服务端 ,一种是 客户端 。 服务端只要是向客户端发送操作命令,客户端解析命令后执行相应操作,然后将结果返回给服务端 ,服务端再将结果显示出来 。 屏幕监控 模块 设计 屏幕监控,也就是将客户端的屏幕截图,然后发送给服务端。由于截图图片格式为 帧图像数据量很大,因此在此模块中引用第三方开源类库压 缩库 截图在内存中压缩成 式,然后再调用 压缩函数进一步对 缩,最后再发送给服务端。鼠标和键盘的操作则是通过模拟来实现,在服务端捕获鼠标键盘操作后,服务端的命令连接就会将捕获的结果发送到客户端,客户端再 通过调用 两个 数进行模拟鼠标键盘操作。 该模块 大致 流程图 如图 4示 : 14 图 4幕监控 大致 流程图 文件 操作 模块 设计 文件操作,包括文件上传、文件下 载、删除文件、修改文件名、执行远程程序 。 在文件传输过程中,服务端能显示传输进度,也可以终止传输 。 该模块大致流程图如图 4示 : 发送截屏命令 解析命令 截屏 图片压缩 添加数据包尾 发送数据 接收数据 是数据包尾吗? 模拟鼠标点击移动 模拟键盘操作 是 否 数据包解压 显示图片 服务端 客户端 发送键盘鼠标命令 停止传输吗? 开始屏幕传输 停止屏幕传输 是 否 15 图 4件操作 大致 流程图 命令操作模块 设计 命令操作,包括系统注册表、服务、进程、消息广播、执行 启或关闭远程计算机等操作,命令操作传输的数据量小,响应快 。 为了客户端程序能正常对进程、服务等操作,还必须对客户端进程进行提升权限操作。 该模块的功能模块图如图 4示: 发送命令 解析命令 修改文件名 执行远程程序 服务端 客户端 删除文件 文件传输 文件传输 发送结果 显示结果 停止传输吗? 停止传输 是 否 16 图 4令操作 功能模块图 务器模块 设计 对于使用自动上线的用户来说,如果系统包含 务器的话就会比较方便,因此在该远程协助系统中,嵌入了简单的 务器,用户可以借助这两个服务器 ,将服务端的 新到动态域名的某个文件中, 使得客户端能够自动上线 。 块设计 本系统采用 术对客户端进程进行守护,达到防止客户端进程被恶意结束的目的。 该功能采用了微软的开源类库 两个系统 行 从而实现对客户端进程进行守护的目的。 远程协助系统 远程 注册表 管理 远程服务管理 远程 作 远程进程管理 远程关机重启管理 17 第五章 系统详细设计 根据系统的主要功能及上一章的总体设计,系统进入 详细设计 阶段 。 详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,经过这个阶段的设计工作,得出对目标系统的精确描述。 由于代码较多,本章在说明部分功能时,只介绍了相关的函数和某些关键的 代码 语句。 客户端与服务器 连接 设计 载了 接和断开的消息事 件,用户可以在这些事件中判断 连接情况,但是断开消息事件在一种情况下无法触发,也就是网线被拔掉或其中一方断电时,为了解决这种情况,可以在服务端和客户端中都添加一个连接时钟,周期性的给对方发送一个心跳包,如果发送失败则表示对方已经断开连接 ,此时则进入断开重连状态 。 对于异步非阻塞的 说,连接成功与否是在其 件里 判断的 , 该事件函数原型为: ,传进的参数如果等于0,则表示连接成功。 相关代码如下: = 0)/如果连接成功 024; 1024; ; ; 0; :&= 0; = | + | + |; 1024; 18 :&= 0; = 系统各模块界面设计及其实现 屏幕监控 模块 服务端向客户端第一次发送获取屏幕命令时,客户端并非立刻截屏然后 将数据发送 服务端 ,考虑到 多个 客户端的屏幕分辨率大小不一致的情况 下 , 客户端首次收到服务端的屏幕监控命令后,应先将客户端当前屏幕分辨率发送给服务端, 服务端在窗口上创建一个矩形区域用于显示客户端桌面图片,然后才是屏幕数据的传输, 由于客户端不停的发送屏幕数据,为了能使服务端区分每一 帧的屏幕,客户端在发送屏幕数据前,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论