收藏 分享(赏)

基于VB的远程控制系统  .doc

上传人:ddeeee 文档编号:16095361 上传时间:2023-09-15 格式:DOC 页数:45 大小:773KB
下载 相关 举报
基于VB的远程控制系统  .doc_第1页
第1页 / 共45页
基于VB的远程控制系统  .doc_第2页
第2页 / 共45页
基于VB的远程控制系统  .doc_第3页
第3页 / 共45页
基于VB的远程控制系统  .doc_第4页
第4页 / 共45页
基于VB的远程控制系统  .doc_第5页
第5页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、论文题目 基于VB的远程控制系统 (英文) Remote Control System Based on VB 基于VB的远程控制系统2012年3月摘 要随着当今社会计算机的广泛普及以及网络服务的快速发展给远程控制系统带来了广阔的用武之地,人们可以通过简单的终端机完全控制网络中另一端的被控机,从而完成强大的控制功能,获取被控机的任何信息,这种方式被称之为远程控制。简单远程控制系统由主控端和被控端两部分组成。主控端用于实施各种对连网计算机的监控操作,被控端对于接收到的数据进行分析,解释并执行。系统主要可以实现获取被控端信息、被控端系统控制、消息发送和被控端界面控制的监控功能。文章对远程控制系统原

2、理和主要相关技术作了简单介绍,在进行需求分析之后,详细描述了远程系统的控制端和被控端的设计与实现,系统采用Visual Basic开发工具,整个系统操作简洁、界面友好、功能灵活、实用,实现了包括被控制端屏幕监控、系统信息、进程监控、关闭计算机、信息互发、桌面和鼠标控制等基本功能。关键词:远程控制;C/S模式;套接字;信息安全Abstract Nowadays, with the development of the network technology so popular and the speed of the network so fast, it is obvious that tec

3、hnology of remote control can be applied widely. Using the remote control, it is so convenient that the remote computer can be controlled by the local one. Therefore, under this circumstance, what can achieve this powerful control function and obtain any information of the controlled computer, we ca

4、ll it remote control. The simple remote control system consists of two parts including terminal and controlled terminal. We can monitor the controlled terminal and implement some operation about controlling the controlled terminal on the controlling monitor. The controlling terminal, which is put in

5、to implementing a variety of monitoring operation for connected computer, while the controlled terminal is used for analyzing data, explaining and implement the received data. The system can fall into several functions of achieving the information of controlled, control controlled terminal, sending

6、messages, controlling the screen of controlled computer and so on. This paper has a simple description of the remote control system principle and main techniques. After analyzing demand and need, describing design and implementing controlled terminal in detail, this system can adopt Visual Basic so

7、that it has simple operation, friendly interface, flexible and practical function. Ultimately, it carries out client screen monitoring system information, computer information, process, cut-off computer, sending information for each other, desktop, the mouse control and other basic functions.Key wor

8、ds: Remote control; Client/Server mode; socket;Information Security目 录1引言11.1 本课题的研究背景和意义11.2 国内外远程技术研究现状11.3 本课题的主要研究的内容22 相关理论技术32.1 远程控制概述32.1.1 远程控制软件的原理32.1.2 远程控制技术的应用42.2 开发环境42.3 主要控件介绍42.3.1 Winsock控件42.3.2 Timer控件介绍52.4 C/S模式52.5 TCP协议与UDP协议介绍52.5.1 TCP协议52.5.2 UDP协议63 需求分析与设计73.1 功能要求83.2

9、性能要求83.3 系统体系结构主要设计93.3.1 基本控制原理93.3.2 鼠标控制模块93.3.3 键盘控制模块93.3.4 屏幕控制模块94 C/S模式远程控制程序实现114.1 控制端程序实现114.1.1 与被控制端连接114.1.2 获取被控端系统信息114.1.3 获取被控端进程信息124.1.4 发送消息144.1.5 关闭、重启和注销计算机154.1.6 鼠标和桌面控制以及获取远程屏幕184.2 被控制端程序实现205 系统调试及运行215.1 软件调试基础215.2 调试的目标216 结论25致 谢26参考文献27附录1 系统实物图28附录2 系统部分程序代码29附录3 毕

10、业设计作品说明书391引言1.1 本课题的研究背景和意义 随着经济、社会和科学技术的不断发展,远程控制技术的应用范围也在不断扩大,从一开始的军事、银行、政府机关部门等特殊行业领域的应用已经发展到了今天的电子部门、商业部门、科技部门、道路公共交通领域、学校教学设施应用、卫生医疗部门以及酒店宾馆行业等,其优越的功能也日益引起了各个应用行业的重视与青睐,但是很多远程监控软件必须配有一些固定的硬件设备,这不仅会提高实际应用的成本,而且也会使实施应用增加了技术难题1。虽然有诸多问题的存在,但是我们应该认识到远程控制技术的研究,不仅充分合理地利用了现有的网络资源,拓宽了互联网的利用范围,而且也使远程控制能

11、减少成本拓展远程化物理距离,准确实现任意两个节点间的访问机制,并使其尽早进入一般生活的应用领域,例如,进入家庭,人们通过互联网控制自己家的家用电器,采用互联网作为远程控制平台,是一项很有发展前途和潜力的技术,另外它可以应用到远程设备诊断、远程工程监测、远程遥控等领域。互联网的出现及发展推动了科学技术的全面发展,并使之取得了巨大的进步,利用互联网,可以使远程控制技术得到广泛的应用,从而进一步方便我们的日常生活2。1.2 国内外远程技术研究现状 当前,基于互联网的远程控制在国内外都有着不同程度的研究。相比较而言,由于发达国家在计算机控制技术和计算机信息技术发展上的优势,他们研究远程控制方面的问题较

12、我们早些,而且有一些科技公司有类似的的初级产品问世。国内由于互联网的飞速发展,近几年也开始了对远程控制的积极研究。国内外在基于互联网的远程机器人控制方面的研究相比其他行业领域要多一些。例如美国伯克立大学研制的是一个机器人手臂可以通过互联网远程控制种植花草。我们可以通过观看机器人手臂上的摄像机所传输回来的图片,对这个花园内的花草进行简单的操作。这些基于互联网的远程控制系统普遍采用了客户/服务器网络模型,现场采用摄像机来监视,并通过网络发出指令。当前,由于网络基础设备还不够完善,所以监视图像由于数据量庞大,会使传输时间消耗过长。即使采用了数据压缩技术,也仍然需要很大的数据量进行传输,所以这样产生的

13、远程控制时间延迟也必然会增加。此外,这类系统普遍采用客户机/服务器的网络模型,监控端控制的操作功能也相对简单,都只是发一些简单的执行命令,而不能实现一些复杂又具有逻辑性的处理功能。第三,此类系统在处理动作上由于时间延迟导致现场控制系统不流畅,但是仍然使用执行命令-等待命令-执行命令-等待命令等单步执行流程,生产设备的运行效果就会相对降低,第四,如果光是采用以图像监视的方式,虽然能让监控人员比较直观的感受到现场的实际情况,方便监控人员随时控制,但是我们应该发现,某些设备的被监控状态是很难用图像的方式来表达出来的,就好比温度、湿度、速度、压强、压力等此类精确的数值;此外有些采用图像传输的数据量也可

14、以采用通过数据传输关键数据以便在监控端进行实况模拟图,这样就会减少传输的数据量,从而使得数据传输速度大大提高3。1.3 本课题的主要研究的内容 远程控制是一个具有重要的研究价值的课题,它在工业、农业、军事国防等各个方面有着广泛的需求。然而,使用传统的方式,由于成本、技术、维护、传输距离等方面的问题,远程控制并没有得到很好的普及与利用。先前由于互联网的出现,使得成本低廉的远距离通信轻易的变成了现实。于是采用互联网作为远程控制平台,将远程控制的状态、操作命令等控制信息的数据和信息通过互联网传输。不但减少了开发成本、而且还增加远程控制的灵活性,人们也不必再为了实现一个临时的远程控制,而需要重建一套新

15、的远程控制系统。本课题的研究主要内容主要包括以下几个方面:1. 简单远程控制系统相关理论研究。2.简单远程控制系统总体结构。3.简单远程控制系统的功能模块的设计。4.简单远程控制系统功能模块的编程实现。2 相关理论技术2.1 远程控制概述 远程控制是指在异地通过计算机网络拨号或双方接入因特网等手段连接到目标计算机,并通过控制本地的计算机实现对远程计算机进行管理和维护的各种行为。如果要进行远程控制,首先主控计算机和被控计算机都必须处在网络服务中,网络可以是局域网,也可以是广域网,不过某些软件还可以直接使用连接电缆利用计算机COM口或LPT口进行远程控制。其次要保证双方计算机都使用相同的通信协议,

16、在一般的情况下远程控制软件使用的是TCPIP协议相互通信,也有部分软件使用的是SPX、NetBl0S、TCP、UDP协等协议。2.1.1 远程控制软件的原理 远程控制的原理是:用户将自己的计算机连接到网络上,通过远程访问的客户程序发送客户身份验证信息和和远程主机连接的请求,远程主机的服务器端程序来验证客户的身份信息,如果验证成功,就会与客户端建立连接,并向用户发送验证通过和已经建立了连接的相关信息。此时,用户便可以通过客户端程序监控或者向远程计算机发送要执行的命令,从而服务器端程序就会自动执行这些操作命令,并把鼠标、键盘和屏幕等信息不断刷新地传回给客户端程序,客户端程序通过内部处理把主机传回来

17、的屏幕等信息显示给在本地给用户看,使得用户就好比亲自在远程计算机上操作一样。如果客服端没有通过身份验证,就不会与用户建立连接,用户也就没有权限远程控制主机了。远程控制软件一般可以分为两个程序:一个客户端程序Client,和一个服务器端程序Server。使用前需要将客户端程序安装到主控端的计算机上,将服务器程序安装到被控端的计算机上。它的控制过程一般是先在主控端上执行客户端程序,像一个普通客户一样向被控端计算机中的服务器端程序发出连接请求信息,建立一个特殊的远程连接,然后通过这个远程连接,使用远程控制的各种功能发送远程控制命令,控制被控计算机上各种应用程序的运行4。这种远程控制方式称为基于远程服

18、务的远程控制(Remote Control Based On Remote Service)5。2.1.2 远程控制技术的应用 近年来,随着PC技术的广泛应用和网络服务的不断发展,网络技术已经成为计算机领域中未来最为热门的发展方向,尤其是网络远程控制技术,目前远程控制技术的应用领域已经相当广泛,已经应用于网络自动化管理、远程办公、远程维护、远程实施监控、远程计算机教学,以及各种自动化工业控制等方面。使用远程控制技术,我们可以克服因地域差异而引起的操作不方便,让网络的效率得到更大更广的发挥。随着科学技术的不断发展与计算机网络的不断普及,我们不仅可以通过远程控制技术管理和维护远程计算机,解决远端计

19、算机的故障,和其他工作同事通过网络实现远程和作,一起完成一份工作或者与其他团队成员相互交流技术意见,甚至还可以在家或路途中使用公司网络数据资料以及办公设备,从而来实现远程办公。此外,我们还能与多位远程连接用户同时进行多点会话。对于个人用户而言,远程控制技术最具吸引力的莫过于可以控制远程的计算机,我们可以在自己家中操作办公室里的电脑,或者在办公室里调用存储在家里电脑里的文档,甚至还可以当一回专家,远程为朋友的电脑排忧解难。2.2 开发环境 Visual Basic是一种由微软公司开发的包含协助开发环境的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,它简单易学、效率高,且功能强

20、大可以与Windows专业开发工具SDK相媲美。从任何标准来说,VB都是世界上使用人数最多的语言不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。2.3 主要控件介绍2.3.1 Winsock控件 Winsock的全名是Windows Socket,是Microsoft Windows环境下的标准TCP/IP网络开发环境,是介于Windows TCP/IP的Proto

21、col stack之间的一项标准接口。Winsock是一个基于Socket模型的API,它包括许多为Unix开发的Berkeley函数和基于Windows消息驱动机制的Windows扩展函数,Winsock规范定义了一个TCP/IP网络上开发Windows程序的接口标准,其所提供的程序库会负起与网络底层沟通的工作,它提供了访问TCP和UDP网络服务的方便途径。Microsoft Access、Visual Basic、Visual C+或Visual FoxPro的开发人员都可使用它。进而使得设计者能设计出更多功能或更具有用户友好性的网络软件。2.3.2 Timer控件介绍 通过引发Timer

22、事件,Timer控件可以有规律地隔一段时间执行一次代码。Timer控件用于背景进程中,它是不可见的。对于Timer控件以外的其它控件的多重选择,不能设置Timer的Enabled属性。2.4 C/S模式 C/S模式又称Client/Server或者客户/服务器模式,是计算网络理论中的重大技术突破,相比以前传统的主机集中模式和文件服务模式而言,C/S结构不仅具有减少网络流量的优点,而且还能提高事物处理的速度。目前两层或多层C/S结构技术在数据库的应用领域上已经得到了广泛应用6。2.5 TCP协议与UDP协议介绍2.5.1 TCP协议 TCP协议:传输控制协议(Transmission Contr

23、ol Protocol),允许创建和维护与远程计算机的连接。建立连接后的两台计算机就可相互进行数据传输。在创建应用程序之前,必须决定应用程序是服务器还是客户端。如果是创建客户端的应用程序,就必须知道服务器的计算机名又或者IP地址(RemoteHost属性),还要说明进行“监听”的端口(RemotePort属性),然后调用Connect方法。如果是创建服务器的应用程序,就应该设置一个收听的端口(LocalPort属性)并调用Listen方法。当客户端发出连接请求时,就会发生ConnectionRequest事件。为了准确完成连接,可调用ConnectionRequest事件内的Accept方法。

24、在建立连接后,任何两端的计算机都可以接收和发送数据。为了发送数据,可调用SendData方法。当接收数据的时候就会发生DataArrival事件。调用DataArrival事件内的GetData方法即可获取数据。2.5.2 UDP协议 UDP协议:用户数据文报协议(User Datagram Protocol,是一个无连接协议。跟TCP的操作不同,计算机之间并不建立连接。另外UDP应用程序既可以是客户机,又可以是服务器。为了传输数据,首先要设置客户端计算机的LocalPort属性。然后,服务器计算机只需将RemoteHost设置为客户端计算机的Internet地址或者IP地址,并将Remote

25、Port属性设置为跟客户计算机的LocalPort属性相对应的端口,并调用SendData方法来着手发送信息。于是,客户端计算机使用DataArrival事件内的GetData方法来获取已经发送的信息。3 需求分析与设计 本软件是由客户端和服务器端两部分组成的。而且需要客户端和服务器端同时运行相应的程序来实现。本软件要实现的基本功能可以简化如下: 第一步,服务器端运行相应的远程控制软件服务器程序,使服务器端的某个端口处于监听状态。这样服务器端计算机就时刻处于监听远程计算机连接请求的状态。 第二步,当服务器端程序运行后,客户端在本地计算机中运行相应程序的客户端程序,运行这个客户端程序时,会指定一

26、个要连接的服务器的IP地址,(本软件要求输入服务端IP地址,端口是服务端所开启的端口号),程序运行后,点击连接就可以连接指定的计算机了。 第三步,连接指定的计算机后,客户端计算机就向服务器端指定的端口发送连接请求(本软件使用TCP连接),如果服务器端计算机同一端口处于监听状态,则服务器端接收客户端的连接请求,并根据设定的值向客户端发送接受请求确认信号,并同时向客户端发出登录成功信息,客户端显示连接成功确认对话框。 第四步,连接成功后,就可以进行各种远程控制、屏幕控制等控制命令。图3-1是最基本的结构图。图3-1 结构图3.1 功能要求我设计的远程控制系统主要能实现以下几个功能:1.控制端与被控

27、端之间能互相发送消息;2.控制端能隐藏被控端系统的任务栏和图标;3.控制端能控制被控制端远程关机和重启;4.控制端能获取被控制端的系统信息和当前的进程;5.控制端能锁定被控制端的鼠标和键盘;6.控制端还能获取被控端的屏幕信息等。基本功能如图3-1显示:图3-2 功能展示3.2性能要求 本系统操作起来简单方便友好,操作界面每个步骤都是一目了然,想进行那一个步骤操作,都无需花费脑筋,不至于使得用户花费太多的时间与精力去寻求何如使用此系统。在此系统中,除了获取屏幕这项功能外,其他功能都可以快速的实现。而抓去屏幕这一功能占用了比较大的宽带,在宽带有限的情况下,就会显得非常慢。3.3 系统体系结构主要设

28、计3.3.1 基本控制原理 该远程控制系统由服务器端和客户端两个部分组成,客户端可以通过鼠标和键盘以及相应的命令控制服务器端的计算机。实现远程控制的机理是,受控机运行一个程序,用于侦听端口并接受数据包,而控制方通过端口给受控方的端口发送数据包。一共需编写两个程序,一个是控制端,另一个则是被控制端,受控机等待控制机发送过来的指令然后执行相应的操作。3.3.2 鼠标控制模块 可以让客户端用户通过鼠标控制服务器端的计算机。其实现过程是客户端软件先捕捉鼠标在图形化接口(屏幕控制模块提供的)中的动作,再将这些信息发送到服务器端,最后服务器端的服务程序向操作系统(并不是自己处理)发送这个动作的消息,这样就

29、如同在服务器端的操作系统上进行了相应的鼠标操作。3.3.3 键盘控制模块 可以让客户端用户通过键盘控制服务器端计算机的输入,其实现过程是客户端软件先捕捉键盘在图形化接口中的动作,再将这些信息发送到服务器端,服务器端的服务程序向操作系统发送这个动作的消息,这样就如同在服务器端的操作系统上进行了相应的键盘输入。这样一来,如果服务器端的“Microsoft Word”为当前的活动窗口,则客户端的键盘操作就如同有人在服务器端利用“Microsoft Word”进行文字编辑一样。屏幕控制、键盘控制和鼠标控制模块是在网络状况较好的情况下才会有较快的响应速度,如果网络状况不好将采用命令控制模块进行远程控制模

30、块进行远程控制。这种控制方式有较多的限制,需要根据具体的需求进行设计7。3.3.4 屏幕控制模块 可以让客户端用户实时监控服务器端计算机的运行状态。客户端以一定的频率向服务器发送请求,服务器响应客户端的请求将自己的屏幕拷贝下来并将这些信息发送给客户端,客户端接收到这些信息之后以图像的形式显示出来,为鼠标和键盘控制提供图形化接口。流程如图3-3所示。图3-3 屏幕传输大致流程4 C/S模式远程控制程序实现 该远程控制系统由服务器端和客户端两个部分组成,客户端可以通过鼠标和键盘以及相应的命令控制服务器端的计算机。实现远程控制的机理是,受控机运行一个程序,用于侦听端口并接受数据包,而控制方通过端口给

31、受控方的端口发送数据包。一共需编写两个程序,一个是控制方,另一个则是受控方,受控机等待控制机发送过来的指令然后执行相应的操作。4.1 控制端程序实现4.1.1与被控制端连接图4-1 连接被控端 在被控端开启监听端口后,我们就可以主动去连接被控端的计算机了,在图4-1中,当在ip文本框内和端口文本框内填入不是数字的时候会友情的提示错误,以免导致系统出错。如果控制端没有连接被控端的情况下就会不断尝试连接。4.1.2 获取被控端系统信息 获取远程计算机信息的界面如图4-2设计。获取系统信息代码见附录二:图4-2 获取系统信息图4-3 提示没有连接主机如图4-3提示在没有主机存在的情况下是无法进行远程

32、操作的。4.1.3 获取被控端进程信息为了能准确获取进程信息和美观的界面,首先自定义一个函数,使其返回值为当前的进程列表,并且连接到所处计算机的WMI,返回一个对SWbemServices对象的引用。实现代码如下:Function get_process_list() As String Dim objSWbemLocator As New SWbemLocatorDim objSWbemServices As SWbemServicesSet objSWbemServices = ctServer() Set objSWbemObjectSet = ncesOf(Win32_Process)

33、枚举每一个Win32_Process的实例,将进程信息取出来,添加到ListView1的每一列,用符号|进行分割,循环进行直到枚举完。实现代码如下: For Each objSWbemObject In objSWbemObjectSet If Not IsNull(tablePath) Then a = e + | + + | + tablePath Else a = e + | + + | + Null End If s = s + Trim(a) + vbCrLf Next get_process_list = s Set objSWbemObjectSet = NothingEnd F

34、unction界面如图4-4设计:图4-4 获取系统进程4.1.4 发送消息信息互发通过Winsock控件实现,通过添加加在数据中的特征信息进行判断。我们可以简单的通过图4-5看出大致过程。实际界面如图4-6所示。图4-5 信息互发简单处理过程图4-6 发送消息界面4.1.5 关闭、重启和注销计算机图4-7显示的是关机重启计算机等界面,在vb环境下添加各个按钮控件,并修改相应名称和属性。图4-7 远程重启等界面在本软件中,这一个功能用控制端给被控端发送有关重启等命令,被控端收到命令后,先进行判断再执行相应的操作。其实,所有的操作都是在被控端执行的,这些操作都主要使用一个主要函数ExitWind

35、owsEx()来实现的8。这个函数原型如下: BOOL ExitWindowsEx(UINT uFlags,DWORD dwReserved)参数uFlags是指定系统的关机类型,这个参数取值有以下几种:EWX_LOGOFF表示注销已经登录着的用户,让另外一个用户登录 。EWX_POWEROFF表示强制关闭计算机,如果计算机支持自动关闭电源功能的,那么关闭电源(在Windows NT下,调用进程前提必须要有SE_SHUTDOWN_NAME权限)。EWX_REBOOT表示关闭计算机并重新启动(在Windows NT下,调用进程前提必须有SE_SHUTDOWN_NAME权限)。EWX_SHUTDO

36、WN:表示保存所有文件并关闭计算机及电源(在WindowsNT下,调用进程前提必须有SE_SHUTDOWN_NAME权限)。EWX_FORCE:表示不保存文件而强行关闭计算机,一般使用在紧急状态下。EWX_FORCEIFHUNG:表示不保存文件而强行关闭计算机,该参数在Windows2000以上版本有效。参数dwReserved作为一个保留参数,被系统忽略。 如果调用成功,ExitWindowsEx()返回一个非0值,否则,返回()。在实现该功能时,要首先调用GetVersion()函数来获取操作系统的版本,当操作系统时2000或以上时,需要设置调用进程的权限,使之能进行重新启动计算机的操作。

37、首先定义关机函数,当收到关机命令时可以直接调用关机函数的代码实现关机。关机函数代码如下:Private Sub Halt() Dim method As HowExitConst method = EWX_SHUTDOWN + EWX_FORCE + EMX_POWEROFF Call AdjustToken Call ExitWindowsEx(method, 0) End Sub同理定义注销计算机函数,当收到注销命令时可以直接调用注销计算机函数的代码实现注销计算机。注销计算机函数代码如下:Private Sub Logon() Dim method As HowExitConst meth

38、od = EWX_LOGOFF Call AdjustToken Call ExitWindowsEx(method, 0) End Sub最后定义重启计算机函数,代码如下:Private Sub Restart() Dim method As HowExitConst method = EWX_REBOOT Call AdjustToken Call ExitWindowsEx(method,0)End sub实现此功能的大致流程见图4-8所示:图4-8 关机或重启流程图4.1.6 鼠标和桌面控制以及获取远程屏幕在远程控制的实践中,控制端用户要想知道被控端的用户在进行什么操作,一般有两种方法

39、,一种方法是记录被控端的鼠标和键盘事件,形成一个文本文件并且将其写入,然后把文件发送到控制端。控制端用户通过查看文件的方式了解被控端的用户运行了哪些应用程序,按了哪几个键。这样,虽然知道了用户的一些操作,但是很不直观,而且查寻起来也不太方便。另外,要想让程序在用户不知情的情况下去监视键盘,这个技术是非常困难和复杂的,还涉及到网络安全方面。这时就要用到另一种方式。即在被控端抓取当前的屏幕,形成位图文件,然后把该文件发送到控制端计算机并显示出来,实现远程屏幕抓取。鼠标操作实现原理:在本软件中,控制端可以通过网络控制被控端的计算机的鼠标和键盘,以达到控制被控端计算机的目的,鼠标是一个定位输入设备。要

40、控制鼠标就必须要控制鼠标所处的屏幕位置并且要控制鼠标的按键操作。要实现对鼠标的控制操作,首先就要了解几个和鼠标操作有关的函数和结构。下面介绍这些函数和结构。首先是:Mouse_event()函数9,其原型如下:void mouse_event (DWORD dwFlage,DWORD dx,DWORD dy,DWORD dwData,DWORD dwExtraInfo);函数mouse_event()可用来对鼠标进行移动和按键操作。该函数有5个参数,其中参数dwFlags指鼠标的移动和按键标志变量。它可以取以下的值:MOUSEEVENTF_ABSOLUTE:参数dx和dy保护规范化的绝对坐标。

41、如果不设置,则dx和dy指鼠标移动的相对量;MOUSEEVENTF_MOVE:代表鼠标发生移动;MOUSEEVENTF_LEFTDOWN:代表鼠标左键按下;MOUSEEVENTF_LEFTUP:代表鼠标左键弹上;MOUSEEVENTF_RIGHTDOWN:代表鼠标右键按下;MOUSEEVENTF_RIGHTUP:代表鼠标右键弹上;MOUSEEVENTF_MIDDLEDOWN:代表鼠标中键按下;MOUSEEVENTF_MIDDLEUP:代表鼠标中键弹上;MOUSEEVENTF_WHEEL:如果鼠标支持滚轮,则表示轮子滚动。移动量由参数dwData指定。Dx:如果在dwFlags参数中指定MOUS

42、EEVENTf_ABSOLUTE。则参数dx指定鼠标沿X坐标的绝对位置,在0到65535的范围内,其中(0,0)表示的是桌面的最左上角,而(65535,65535)表示的是桌面的最右下角;如果在dwFlags参数中没有指定MOUSEEVENTF_ABSOLUTE,则该参数知道从其实点的移动量,正值表示向桌面右侧移动,负值表示向桌面左侧移动。Dy:如果在dwFlags参数中指定MOUSEEVENTF_ABSOLUTE。则参数dx指定鼠标沿Y坐标的绝对位置,取值范围在0到65535,其中(0,0)表示桌面的最左上角,(65535,65535)表示桌面的最右下角;如果在dwFlags参数中没有指定M

43、OUSEEVENTF_ABSOLUTE,则该参数知道从其实点的移动量,正值表示向桌面下方移动,负值表示向桌面上方移动。dwData:如dwFlags被设置为MOUSEEVENTF_WHEEL,则该参数知道轮子移动的量,正值表示向前移动,负值表示向后移动。如果dwFlags没有被设置,则此参数为0。dwExtraInfo:应用程序定义的32位信息9。4.2 被控制端程序实现图4-9 服务端界面被控制端较控制端来说界面比较简单,不过代码就相对较多,该程序代码见附录二。界面如图4-9所示。被控制端程序流程详见图4-10:图4-10 被控制端流程图5 系统调试及运行 5.1软件调试基础 软件调试是根据

44、程序软件开发中各阶段的规范说明和程序的内部结构流程而精心设计一批调试用例,并利用这些调试用例去执行程序,以发现程序的错误过程。软件调试在软件生存期中有两个阶段:通常在编写出每一个模块之后就对它做必要的调试。编码和此调试属于软件生存期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种各样的综合测试,这是软件生存期的另一个独立阶段10。5.2 调试的目标软件调试有以下三个目标:1. 调试是为了发现程序中的错误而执行的过程。2. 好的调试方案是极可能发现迄今为止尚未发现的错误的调试方案。3. 成功的调试是发现了迄今为止尚未发现的错误的调试。因此,软件调试的目标是以最少的时间和人力系统地找出软件中

45、潜在的各种错误和缺陷。控制端: 操作系统:Windows XP SP3 IP:192.168.1.101 端口:8688被控制端:操作系统:Windows XP SP3 IP:192.168.1.102 端口:86885.3 测试结果获取系统信息测试:结果如图5-1所示:能够正确获取远程系统的信息,测试成功。图5-1 获取系统信息系统进程信息获取:如图5-2所示:通过这个我们可以知道远程系统当前所运行的应用程序,测试成功。图5-2 系统进程信息消息互发测试如下图5-3所示:通过测试,能够准收发信息,测试成功!图5-3 聊天框如图5-4显示,远程桌面显示正常。图5-4 远程桌面6 结论本课题的研

46、究工作到这里即将结束,经过这几个月的努力和研究,终于完成了论文中设计的系统。本系统基本达到远程控制的功能需求,能够对客户端的屏幕、键盘、鼠标、桌面、系统信息和进程等进行控制,完全像控制本地电脑一样简单,客户端只需将客户端程序运行安装,剩余操作都由服务端完成。通过本课题的研究,让我对软件开发有了更深一步的认识。为了开发出真正满足用户需求的软件产品,首先必须了解用户的需求,确定系统必须完成哪些工作。经过系统需求分析阶段后,系统就进入总体设计阶段,在这个阶段确定一个可以实现目标系统的最佳方案。软件生命周期的下一阶段是详细设计,在这个阶段中要确定应该怎样具体的实现所要求的系统。总的来说,就是在软件开发时不能过于心急,要严格按照软件生命周期进行。由于本人的水平有限,在系统和论文中难免有错误,欢迎老师和同学们批评指正。致 谢论文即将完稿,回忆这次毕业设计的整个过程,真是获益匪浅。有苦也有累,付出总有回报。在本次毕业设计期间,我不但巩固了基础理论知识,也提高了专业技能水平和实际动手能力,对于以后的工作、学习都将是一笔宝贵的财富。首先我要感谢我的指

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报