优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

044_简单远程控制系统(主控端及部分被控端)

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

3.2 功能要求
本系统在功能要求上主要实现的功能有:主控端获取被控端计算机系统信息、对被控端界面的控制、对被控端的系统控制以及对向被控端发送消息。
1.主控端获取被控端系统信息。此模块的主要功能是主控端能通过此功能了解到被控计算机上的系统信息,为后面进一步的对被控端进行控制作一个简单的了解,也同时通过此功能对被控计算机上所安装的软、硬件进行了解,做到对被控计算机的了解程度跟了解本机一样。
2.对被控端的界面控制。此模块主要实现主控端对被控计算机的用户界面的控制,包括对开始按钮的隐藏以及显示、任务栏的隐藏以及显示和桌面图标的隐藏和显示功能。
3.对被控端的系统控制。此模块主要实现对被控计算机的机器系统的控制,包括对被控计算机实施关闭计算机、重新启动被控端计算机以及注销被控端计算机目前使用的用户功能。做到使主控端用户在主控计算机上就能很容易的控制被控计算机的系统。
4.向被控端发送信息。此模块主要实现主控计算机向被控计算机发送文字性消息的功能,有了此功能模块的建立,主控端用户可以在本机上向被控端用户传递信息和发送消息,做到了主控端的用户与被控端用户的联系。
3.3 主控端设计思路
主控端主要是发送各种控制命令给被控端,控制被控端实现各种控制功能。当程序运行时首先要进行主控端的设置,本系统采用了人性化的设计,调用了Winsock控件,所以用户不需要自己来设置端口,只要鼠标点击“设置主控端”按钮就可以完成主控端的设置。设置成功后,系统提示设置成功,进入监听状态, 等待被控端发送连接请求,接收到连接请求后建立连接。主控端便可以实现对被控端的控制和消息的发送了。

[来源:http://www.think58.com]

主控端分为两大部分如图1所示。第一个部分是操作部分,主要分为系统设置、被控端信息、系统控制、发送消息和界面控制五部分。第二部分是信息栏显示,当主控端程序运行时会显示主机的IP地址和主机名,而当连接建立后,信息栏会显示被控端的IP地址。
图1 主控端结构
3.4 性能要求
主控端界面应当简单、友好、方便使用和操作;被控端是用作运行在被控计算机内的可执行文件,为提高执行速度,从客户端发送到服务端的信息应尽量的少。主控端与被控端之间通过使用TCP协议建立连接,以实现对被控计算机的控制。
3.5 运行要求
设计出的简单远程控制软件应当在现在使用的大量操作系统上都能运行。例如:Windows 2000、Windows XP、Windows 2003;能在较低的硬件配置上运行,如128M的内存,AMD 1800+的处理器。
4 主控端及部分被控端设计与实现
4.1 简单远程控制系统结构设计
4.1.1 简单远程控制系统的结构
本系统主要是由主控端与被控端两部分组成的。主控端为用户提控进行远程控制的操作平台,负责发送命令给被控端和接收被控端的信息。被控端是用户控制的目标,接收到主控端命令后,被控端会分析数据然后调用函数执行命令。两个部分是通过Winsock控件建立连接的,是基于TCP协议的点对点的通信。因为API函数的关系,用户不需要自己来设置端口,大大的方便了用户的操作。系统框架如图2所示。 [资料来源:http://THINK58.com]
图2系统框架图

内容来自think58 [资料来源:www.THINK58.com]

[资料来源:THINK58.com]

4.1.2 简单远程控制系统的功能模块
 
图3 系统功能结构图
系统的操作功能主要分为四大模块如图3所示。分别是:
1、获取被控计算机系统信息模块:主控电脑获得被控电脑的主要信息,主要包括可用的实际内存大小、系统版本号、处理器序号、鼠标的按钮个数和C盘的文件系统类型等信息。
2、系统控制模块:实现被控端计算机关机、注销、重起功能。
3、发送消息模块:主控端与被控端进行简单的文字对话。
4、界面控制模块:隐藏或显示被控端开始按钮、任务栏与桌面图像。 
4.2 系统功能的实现
4.2.1 主控端界面
主控端程序是用VB语言开发的,它拥有一个主界面(如图4所示)和若干小功能窗体,整个主控端界面非常简单,它将系统功能清晰的展现在用户面前,给用户提供了非常方便的操作。
图4 主控端程序界面
界面上各个功能按钮是建立Command数组利用选择函数与各个功能模块相连接的,鼠标单击按钮会弹出相对应的功能窗体如表1所示,实现对被控端的各种控制功能。每个子窗体有相应的功能按钮来具体控制被控端计算机实现相应功能,如表2所示。在主界面上还添加了Timer控件和Winsock控件,虽然是后台运行但是它们有着非常重要的功能,缺一不可。特别是Winsock控件,它是连接被控段与主控端之间的桥梁。 [来源:http://www.think58.com]
表1 Command数组与功能模块关系
主窗体 按钮 功能
mainform Command1(0) 弹出界面控制窗体
Command1(1) 设置计算机为主控端
Command1(2) 弹出获取被控端信息窗体
Command1(3) 探出系统控制窗体
Command1(4) 弹出消息发送窗体
Command1(5) 退出系统 think58.com

[资料来源:http://THINK58.com]

copyright think58

[资料来源:THINK58.com]

[资料来源:http://www.THINK58.com]

表2 子窗体按钮功能
子窗体 按钮 功能
获取被控端信息 获取信息 获取被控端信息并显示信息
退出 退出获取信息窗体
系统控制窗体 关闭计算机 关闭被控端计算机
注销计算机 注销被控端计算机
重起计算机 重新启动被控端计算机
界面控制窗体
隐藏开始按钮 隐藏被控端开始按钮
隐藏任务栏 隐藏被控端任务栏
隐藏桌面 隐藏被控端桌面
显示开始按钮 显示被控端开始按钮
显示任务栏 显示被控端任务栏
显示桌面 显示被控端桌面
消息发送窗体 文本框 传输并显示文字信息
发送 发送文字消息到被控端
退出 退出消息发送窗体 内容来自think58 [资料来源:http://THINK58.com]

4.2.2 功能实现过程
本系统的所有功能的实现都是建立在主控端与被控端之间连接基础之上的。主控端与被控端的连接是通过使用WINSOCK控件建立的,是基于TCP/IP协议进行点对点的通信。系统在建立连接前必须先设置计算机为主控计算机,系统编程时因为调用了WINSOCK控件,程序会自动设置LocalPort属性,作为监听端口,这个值为一个整数,只要是一个其他TCP/IP应用程序没有使用过的值即可,本系统中主控端使用的是1007。然后使用Listen方法进入监听状态,等待被控端的连接请求。被控端程序发出连接请求,使主控端程序产生ConnectionRequest事件,该时间得到一个参数requestID,主控端程序用Accept方法接受被控端程序的requestID请求。这样,主控端程序就可以用SendData方法发送数据了。Accept方法必须用上一步得到的requestID作为其参数。当主控端程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中可以使用GetData方法接收数据。如果接受到Close事件,则用Close方法关闭TCP/IP连接。
本人在系统开发中主要负责主控端和获取被控端系统信息功能模块的设计(包含被控端部分),由于系统的功能必须有主控端和被控端一起来实现,下面的内容在介绍主控端功能时,同样会介绍被控端。 think58

[版权所有:http://think58.com]

4.2.3 系统控制功能的实现
本系统在此模块中设计为当主控端把控制指令(关机、重起、注销)数据发送给被控端后,被控端接收到这些指令,则进行相应的操作。一般说来如果被控端收到这些指令则调用相应的API函数。在使用界面上运用了选项按钮控件OPTIONBUTTON,在主控端程序中使用了程序控制结构语句If…Then…Else,应用程序中可以经过条件表达式的测试,并根据测试结果为TRUE和FALSE来决定程序运行的方向,只有当满足TURE条件时才会进行下个程序流程,否则执行另一个程序流程。例如当主控端测试结果为REBOOT时,主控端向被控端发送参数"REBOOT",被控端根据参数调用函数Call shell并触发事件过程重起被控端计算机。
这里调用的Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。
Shell的语法:Shell(PathName[,WindowStyle])。
主要代码如下:
Private Sub Command1_Click()
If Option1(0).Value = True Then
mainform.scksever.SendData "CLOSECU"
ElseIf Option1(1).Value = True Then
mainform.scksever.SendData "REBOOT"

内容来自think58 [资料来源:http://think58.com]


Else
mainform.scksever.SendData "LogOff"
End If
End Sub
在被控端的声明sckclient_DataArrival()函数部分写入如下代码:
Case "CLOSECU" '关机
Call Shell("shutdown -s -f")
Case "REBOOT" '重起
Call Shell("shutdown -r -f")
Case "LogOff" '注销
Call Shell("shutdown -l -f")
End
End Select
End Sub
本文来自think58 [资料来源:http://THINK58.com]