论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

简单远程控制系统主控端及部分被控端设计(论文+程序)

4.2.3    系统控制功能的实现 内容来自www.paper51.com

本系统在此模块中设计为当主控端把控制指令(关机、重起、注销)数据发送给被控端后,被控端接收到这些指令,则进行相应的操作。一般说来如果被控端收到这些指令则调用相应的API函数。在使用界面上运用了选项按钮控件OPTIONBUTTON,在主控端程序中使用了程序控制结构语句If…Then…Else,应用程序中可以经过条件表达式的测试,并根据测试结果为TRUE和FALSE来决定程序运行的方向,只有当满足TURE条件时才会进行下个程序流程,否则执行另一个程序流程。例如当主控端测试结果为REBOOT时,主控端向被控端发送参数"REBOOT",被控端根据参数调用函数Call shell并触发事件过程重起被控端计算机。 http://www.paper51.com

这里调用的Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。 paper51.com

Shell的语法:Shell(PathName[,WindowStyle])。 paper51.com

主要代码如下: http://www.paper51.com

Private Sub Command1_Click() copyright paper51.com

If Option1(0).Value = True Then 内容来自论文无忧网 www.paper51.com

mainform.scksever.SendData"CLOSECU" 内容来自www.paper51.com

ElseIf Option1(1).Value = True Then paper51.com

mainform.scksever.SendData "REBOOT"

paper51.com

Else

http://www.paper51.com

mainform.scksever.SendData "LogOff" http://www.paper51.com

End If copyright paper51.com

End Sub

copyright paper51.com

在被控端的声明sckclient_DataArrival()函数部分写入如下代码: http://www.paper51.com

Case "CLOSECU" '关机 内容来自论文无忧网 www.paper51.com

Call Shell("shutdown -s -f") http://www.paper51.com

Case "REBOOT" '重起

http://www.paper51.com

Call Shell("shutdown -r -f")

http://www.paper51.com

Case "LogOff" '注销

内容来自论文无忧网 www.paper51.com

Call Shell("shutdown -l -f") 内容来自www.paper51.com

    End copyright paper51.com

End Select 内容来自论文无忧网 www.paper51.com

End Sub

paper51.com

实现系统控制如图5所示: copyright paper51.com

http://www.paper51.com

图 5 系统控制界面

paper51.com

与“系统控制”相同,主控端在单击别的操作按钮时也执行相应的函数,发送相应的命令,被控端收到数据后,首先解包获取命令代码,再根据命令调

http://www.paper51.com

图6 功能执行流程图

copyright paper51.com

用对应的操作函数,执行相关语句产生相应效果。大致过程如图6所示。 paper51.com

4.2.4    发送消息功能的实现 http://www.paper51.com

本系统在发送消息模块中使用MSGBOX控件,调用SendMessage函数来实现文字聊天功能。当主控端在发送信息窗体中输入信息,点击Command1控件按钮时,触发Command1_Click()事件过程,发送参数SENDIF给被控端,当被控端收到参数后触发被控端的Command1_Click()事件并弹出消息文本对话框显示由主控端发送过来的信息Text1.Text。其主要代码如下:

内容来自论文无忧网 www.paper51.com

Private Sub Command1_Click()’主控端

http://www.paper51.com

mainform.scksever.SendData"SENDINF" & sendtxt.Text

内容来自www.paper51.com

End Sub 内容来自论文无忧网 www.paper51.com

Private SubCommand1_Click()’被控端 http://www.paper51.com

connectform.sckclient.SendData"SENDINF" & Text1.Text 内容来自论文无忧网 www.paper51.com

End Sub

http://www.paper51.com

实现效果图如7所示 http://www.paper51.com

paper51.com

图7主控端向被控端发送消息的效果图

http://www.paper51.com

4.2.5    界面控制功能的实现

内容来自论文无忧网 www.paper51.com

本系统在此模块中调用Findwindow 和Showwindow等函数,实现对被控

内容来自www.paper51.com

图8 界面控制窗体

内容来自www.paper51.com

端的桌面图标、开始按钮、任务栏的隐藏和显示的功能。在主控端屏幕控制功能窗体中添加七个Command按钮,分别是隐藏开始按钮、显示开始按钮、隐藏任务栏、显示任务栏、隐藏桌面、显示桌面和退出(图8)。用户点击各个功能按钮时发送命令函数给被控端,实现屏幕控制功能。命令代码如表3。 paper51.com

表3功能按钮与命令 http://www.paper51.com

按钮名称 http://www.paper51.com

命令函数

copyright paper51.com

隐藏开始按钮 内容来自www.paper51.com

mainform.scksever.SendData "HIDSTAR"

paper51.com

显示开始按钮

copyright paper51.com

mainform.scksever.SendData "APPSTAR" http://www.paper51.com

隐藏任务栏

copyright paper51.com

mainform.scksever.SendData "HIDTASK"

内容来自论文无忧网 www.paper51.com

显示任务栏

copyright paper51.com

mainform.scksever.SendData "NOTHIDT" copyright paper51.com

隐藏桌面

内容来自www.paper51.com

mainform.scksever.SendData "HIDDISK" http://www.paper51.com

显示桌面

内容来自论文无忧网 www.paper51.com

mainform.scksever.SendData "NOHIDDI" copyright paper51.com

退出

paper51.com

Unload Me 内容来自www.paper51.com

在被控端connectform窗体中添加函数代码,利用选择函数激发事件,当被控端收到主控端命令后,便产生相应的效果。表4中是被控端命令代码和相应的操作函数。

copyright paper51.com

表4 命令代码与函数 http://www.paper51.com

命令代码

http://www.paper51.com

操作函数

http://www.paper51.com

HIDSTAR copyright paper51.com

ShowWindow wnd, SW_HIDE http://www.paper51.com

APPSTAR paper51.com

ShowWindow wnd, SW_SHOW

copyright paper51.com

HIDTASK

paper51.com

ShowWindow wnd, SW_HIDE copyright paper51.com

NOTHIDT copyright paper51.com

ShowWindow wnd, SW_SHOW copyright paper51.com

HIDDISK copyright paper51.com

ShowWindow wnd, SW_HIDE

paper51.com

NOHIDDI http://www.paper51.com

ShowWindow wnd, SW_SHOW

内容来自论文无忧网 www.paper51.com

被控端与主控端建立连接后,主控端用户鼠标单击“界面控制”按钮,系统弹出界面控制窗体(图8)。当用户点击隐藏开始按钮时,被控端即发送命令"HIDSTAR"给被控端。被控端接收到命令后,执行命令隐藏开始按钮。

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

图9 showwindow函数主要参数 http://www.paper51.com

在这里主要调用了API中的ShowWindow函数来实现被控端界面的隐藏和显示功能。 主要参数如图9所示。 内容来自论文无忧网 www.paper51.com

因为命令代码的格式基本相同下面进行以“隐藏开始按钮”为例说明,具体命令如表3与表4所示。“/”后为代码的注释。 http://www.paper51.com

写入被控端的代码如下:

copyright paper51.com

Private Sub Command1_Click()

paper51.com

mainform.scksever.SendData"HIDSTAR" 内容来自www.paper51.com

End Sub

内容来自论文无忧网 www.paper51.com

/定义Command1按钮,当用户点击按钮时发送隐藏开始命令"HIDSTAR"给被控端。 http://www.paper51.com

写入被控端的代码如下: paper51.com

Case "HIDSTAR"  /接收HIDSTAR命令后,激发隐藏开始按钮事件 paper51.com

 wnd = FindWindowEx(wnd, 0, sStartButton,vbNullString) paper51.com

 /利用FindWindow函数获得窗口句柄

copyright paper51.com

 ShowWindow wnd, SW_HIDE paper51.com

 /利用ShowWindow函数实现隐藏开始按钮功能

内容来自论文无忧网 www.paper51.com

点击不同的按钮系统会发送相应的命令函数,显示功能是相对于隐藏功能而言的,只有使用了隐藏功能后才可以使用显示功能将画面显示出来。单方面的点击显示功能,被控端窗口显示毫无变化。

copyright paper51.com

------分隔线----------------------------
联系方式