资源描述
NET远程计算机管理工具毕业论文
目录
摘要I
AbstractII
第1章绪论1
1.1项目背景1
1.2项目目的与意义1
1.3国外研究现状1
1.4要解决的主要问题2
第2章技术研究3
2.1 .NET框架与C#语言3
2.1.1 .NET框架发展与特性3
2.1.2 C#语言特性4
2.2 Microsoft Visual Studio 2010旗舰版的使用5
2.3 RDP协议[6]5
第3章项目需求分析6
3.1 需求概述6
3.2 需求详述6
3.2.1 项目要实现的目标功能6
3.2.2 连接功能的详述6
3.2.3 通过控制台连接7
3.2.4 断开连接7
3.2.5全部连接7
3.2.6 全部断开7
3.2.7 导入导出功能7
3.2.8 系统安全性详述7
3.2.9 系统可用性详述7
3.3 程序用例图8
第4章总体设计9
4.1 项目结构概述9
4.2 程序开发结构类图9
第5章详细设计14
5.1 主窗体详细设计14
5.2 新建远程计算机连接详细设计15
5.3 导出设置详细设计17
5.4 导入设置详细设计18
5.5 设置功能详细设计18
5.6 “远程连接”模型详细设计19
第6章程序实现与软件测试效果图21
6.1 系统功能结构图21
6.2 程序新建远程连接22
6.3 连接成功后界面22
6.4 磁盘共享功能演示22
6.5 导出设置功能23
6.6 导入配置文件24
6.7 设置功能演示:26
6.8 系统测试27
6.8.1 测试用例27
6.8.2 测试结果29
6.8.3 问题解决情况29
第7章项目总结31
参考文献32
致谢33
附录34
58 / 62
第1章绪论
在开始项目之前,笔者想说明为什么选择这样一个毕业设计题目,以与为什么选择相关的技术来开发这个软件,开发这个软件又有什么意义和目的,这要从目前的信息技术行业背景与实际应用需求等方面来谈。
1.1项目背景
目前.NET是互联网,网络技术的代名词,它的出现是要改变现在的开发模式,并使应用程序的性能和使用方式发生一次飞跃。.NET是微软下一代的操作平台,它允许人们在其上构建各种应用方式,使人们尽可能通过简单的方式,多样化地、最大限度地从获取信息,解决之间的协同工作,并打破目前计算机、设备、、各大机构和工业界间的障碍,即所谓的“数字孤岛”,从而实现因特网的全部潜能,搭建起第三代互联网平台。.NET将会更好的融入到人们的生活,学习和工作中,更广泛,更深入更全面得渗透到开发者,学校和客户手中,它的未来发展前景以与潜在的前途将不容小觑,值得我们引以重视。
另一方面,作为 .NET的核心开发语言,C# 顺理成章地浮出了水面。C#是随着.NET Framework一起发布的一种新语言,是一种崭新的面向对象的编程语言,强调以组件为基础的软件开发方法。它不但结合了Visual Basic的简单易用性,同时也提供了Java和C++语言的灵活性和强大功能。C#在.NET Framework构架中扮演着一个重要角色,可以说它是Microsoft公司面向下一代互联网软件和服务战略的重要容[1]。
1.2项目目的与意义
因此,笔者选择.NET平台与C#语言作为本软件开发的基本技术,对于课题的选择,在公司工作的经历给我启发,公司的日常业务包括软件的开发与维护等,尤其对于维护这一方面,各个工作的主机服务器等往往相距较远,甚至不在同一地点,各自执行着不同功能,这给日常运行维护的人员带来诸多不便,有时为了查看一个运行数据,就要从一栋楼到另一栋楼去查看对应的主机,如此造成工作效率大打折扣,运维人员也深感疲惫,如果能有一个软件可以远程访问各个位于不同位置的主机,那么运维人员就可以轻松的实时管理各台远程的计算机,可以提高企业员工的工作效率和工作兴趣。
1.3国外研究现状
当前,在远程计算机管理工具的研究开发方面,国外都是硕果累累,涌现出众多优秀的软件,在国外,Rsuupport远程控制系列是远程控制行业数一数二的远程控制产品,具体有三款产品,分别为RemoteCall、RemoteHelp和RemoteView;VNC远程控制软件,(Virtual NetworkComputing虚拟网络计算)最早是一套由英国剑桥大学ATT实验室在2002年开发的轻量型的远程控制计算机软件,其采用了GPL授权条款,任何人都可免费取得该软件,VNC软件主要由两个部分组成:VNCserver和VNCviewer。在国,网络人远程控制软件是正规合法的软件,不会被杀毒软件当作病毒查杀,不会影响系统的稳定性。通过输入对方的IP和控制密码就能实现远程监控;网眼远程控制软件是伴随着企业对信息的安全防护和技术的广泛应用应运而生的,它是一款功能强大的计算机监视、控制与管理系统软件,是为现代企事业的管理人员量身定做的企业管理软件。
1.4要解决的主要问题
在毕业设计里,笔者所要研究的容主要包括如何使用.NET平台与C#语言进行应用软件的开发,尤其是面向对象的窗体程序的开发,开发工具Microsoft Visual Studio 2010旗舰版的使用,以与远程计算机管理工具所需要的一些技术问题,远程桌面,远程控制,远程连接等技术,包括RDP协议的原理与使用。
到这里,笔者大致说明了选择这个课题的原因,接下来就要为开始项目做一些技术知识的准备,针对项目可能会用到的技术知识,笔者做了一些基本的研究学习,在下一章笔者对所学习到的主要容进行了总结。
第2章技术研究
在这一章节中,笔者总结了在技术知识准备阶段所学习到的主要容,主要包括.NET平台,C#语言以与程序的核心功能所需要的RDP协议等容。
2.1.NET框架与C#语言
2.1.1.NET框架发展与特性
Microsoft .NET 不仅语言独立,同时也语言集成。这意味着你可以从别的类继承,捕获异常,利用不同语言的多态[10]。
.NET Framework(.NET Framework)是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。.NET包含许多有助于互联网和部网应用迅捷开发的技术。.NET经过众多版本的不断发展优化升级,主要历程如表1-1[7]:
版本
完整版本号
发行日期
Visual Studio
Windows默认安装
1.0
1.0.3705.0
2002-02-13
Visual Studio .NET
Windows XP Tablet and MediaCenter Editions[4]
1.1
1.1.4322.573
2003-04-24
Visual Studio .NET 2003
Windows Server 2003
2.0
2.0.50727.42
2005-11-07
Visual Studio 2005
Windows Server 2003 R2
3.0
3.0.4506.30
2006-11-06
Windows Vista, Windows Server 2008
3.5
3.5.20122.8
2007-11-19
Visual Studio 2008
Windows7, Windows Server 2008 R2
4.0
4.0.30319.1
2010-04-12
Visual Studio 2010
Windows 7 (recommended)
4.5
4.5.40805
2011-09-13 (Developer Preview)
Visual Studio ‘11’
Windows8, Windows Server 8
表1-1 .NET版本发展历程
以上是.NET各版本框架大致情况,在本次设计中使用的开发环境是Visual Studio 2010,基于.NET4.0框架,因此对.NET4.0框架做进一步研究:
.NET框架 4.0主要增加了并行支持,英文版于2010年4月12日推出。
企业基础 .NET提供开发软件的独立平台,建高度安全的网络系统,相当倚重软件元件以与元件导向程式。在这方面它完全取代前者(COM)[12]。
.NET的初级组成是CLI和CLR。CLI是一套运作环境帮助,包括一般系统、基础类库和与机器无关的中间代码,全称为通用中间语言(CIL)。CLR则是确认操作密码符合CLI的平台。在CIL执行前,CLR必须将指令与时编译转换成原始机械码。
所有CIL都可经由.NET自我表述。CLR检查元资料以确保正确的方法被调用。元资料通常是由语言编译器生成的,但开发人员也可以通过使用客户属性创建他们自己的元资料。
如果一种语言实现生成了CLI,它也可以通过使用CLR被调用,这样它就可以与任何其他.NET语言生成的资料相交互[11]。CLR也被设计为操作系统无关性。
当一个汇编体被加载时,CLR执行各种各样的测试。其中的两个测试是确认与核查。在确认的时候,CLR检查汇编体是否包含有效的元资料和CIL,并且检查部表的正确性。核查则不那么精确。核查机制检查代码是否会执行一些“不安全”的操作。核查所使用的算法非常保守,导致有时一些“安全”的代码也通不过核查。不安全的代码只有在汇编体拥有“跳过核查”许可的情况下才会被执行,通常这意味着代码是安装在本地上的。
通过.NET,你可以用SOAP和不同的web服务进行交互。
2.1.2C#语言特性
C#语言功能主要包括[2]:
1)完全支持类和面向对象编程,包括接口和实现继承,虚函数和运算符重载。
2)一致性且定义完善的基本类型集。
3)对自动生成XML文档的置支持。
4)自动清理动态分配的存。
5)可以完全访问.NET基类库,并易于访问Windows API。
2.2Microsoft Visual Studio 2010旗舰版的使用
Microsoft Visual Studio 2010 Ultimate 自带一些强大的工具,能够简化整个应用程序开发过程。团队通过利用高级协作功能、集成的测试和调试工具来确保每次都能交付高质量的代码,从而可以提高工作效率并节约成本[8]。
首先从微软官网下载Microsoft Visual Studio 2010旗舰版试用版,安装后即可试用,笔者主要是使用基于Visual C#的Winform开发,建立一个解决方案,然后可以建立多个工程,分别处理不同容,整个项目大致结构就是一个方案下多个工程。
2.3RDP协议[6]
远程桌面协定(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协定,让使用者(用户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。大部分的Windows都有用户端所需软件。
它的主要功能包括以下容:
•多种显示支持,包括8,15,16,24,32位元色。
•128位元加密,使用RC4加密算法。(此为定的加密方式;比较旧版的用户端可能使用较弱的加密强度)
•文件系统转向支持,使用者可在使用远程电脑的过程中,取用本地(用户端)电脑上的文件系统。
•打印机转向支持,在使用远程电脑时,可以使用本地(用户端)电脑上的打印机输出,包括直接连在用户端电脑的打印机或网络共享打印机。
•Windows 的剪贴簿资料可以在远程与本地电脑之间互通。
有了必要的知识储备,就可以正式开始软件项目,首先要从需求分析开始。
第3章项目需求分析
再简单的软件系统,也有它高度的在复杂性,因此它们同样需要遵循工程准则[9]。需求分析是软件工程中非常重要的一步,它是整个软件开发过程的重要指导,该需求分析主要是根据毕业设计题目的要求。
3.1 需求概述
.NET远程计算机管理工具的主要需求就是要能够连接远程的计算机,通过局域网或者互联网都可以连接,连接后可以使用远程计算机上的合法用户的用户名与密码登陆到远程计算机。
大致上应该包括下面这些需求:
1)功能性:实现软件基本业务要求,且具有完善的安全特性。
2)可用性:提供友好可靠的交互界面,提供良好的操作体验。
3)可靠性:提供可靠的系统错误处理能力,减少系统异常。
4)可支持性:提供软件的适应性,提供系统的可配置可升级性等。
3.2 需求详述
3.2.1项目要实现的目标功能
类似远程桌面,但是远不止远程桌面,NET远程计算机管理工具要实现多开,多连接的功能,能同时连接多台远程计算机,互不影响,而且保持多台计算机都应该有较高的连接使用效率,从菜单功能的设置上来讲,主要包括以下实用的功能:
1)连接功能,远程连接到一台远程计算机。
2)通过控制台连接,通过控制台连接到远程计算机。
3)断开连接,断开一个选择的连接。
4)全部连接,同时连接多台远程计算机。
5)全部断开,同时断开与多台远程计算机之间已经建立的连接。
6)导入导出功能,可以从本地导入一个连接的文件,或者将已保存到程序中的连接导出到本地,保存成一个连接文件。
7)设置功能,可以直接进行批量的远程连接的配置。
3.2.2连接功能的详述
连接功能可以选择一个已经加载到程序中的远程连接,是程序的基本功能,另一方面,也可以选择连接到一个新的连接,用户可以自定义一个新的远程连接,定义之后可以保存到本地,然后连接到这个新建的远程连接。
3.2.3通过控制台连接
通过控制台的连接与上一个连接功能十分类似,所不同的是它将通过控制台连接,通过控制台来操作远程计算机。
3.2.4断开连接
这个功能就是要断开当前选中的远程连接,安全退出,释放连接过程所占用的资源等。
3.2.5全部连接
这个功能是该远程管理工具的批量处理功能的表达,选中全部连接可以同时打开所有在程序中已经定义的远程连接,可以从本地导入一个配置文件后,连接到所有这个配置文件里的远程连接。连接将以一个个的标签的形式打开,类似浏览器一样,可以很方便的管理每一个远程连接的计算机。
3.2.6全部断开
这个与上面全部连接是相对应的功能,这个功能就是断开当前所有已经建立的连接,这样就可以实现批量的操作,也是一个非常实用的功能,也是该管理工具不同于简单的远程桌面的一个特色。
3.2.7导入导出功能
导入导出功能是一个非常实用的功能,也是非常关键的功能。导出功能,就是把在程序中保存的远程连接的详细属性信息全部保存到一个自定义的文件。另一方面,导出的文件属于自定义的文件,这些文件将会作为程序日后导入使用的文件,所以要涉与到解密的过程,这些将在系统详细设计里详述。
3.2.8系统安全性详述
在本系统中,首先要考虑到的安全性就是导入导出功能,因为这里涉与到远程计算机登陆用户的用户名与用户口令等敏感信息,这里应该采取加密解密算法,对敏感信息进行加密解密操作。另一方面,程序运行过程中,也应该保持远程连接的稳定性,不至于操作突然中断造成一些不必要的损失,在该管理工具中,采用的主要连接方式是通过RDP协议,在这样的连接中,如果连接意外中断,会话状态会被自动保存,不会造成正在进行中的工作意外中断,稍后可以重新登录远程主机继续刚才断开的连接。操作的时候也要保存连接的性,不至于被未被授权的用户窥视等。
3.2.9系统可用性详述
系统应该提供给用户较好的操作体验,简洁实用,操作选项上,使用一个菜单有不同的菜单项,分别进行不同的操作,功能一目了然,同时,为考虑到多连接时的操作方便,每一个打开的连接,都以一个新标签的形式打开,类似浏览器一样的功能。在操作上,可以一次打开一个连接或断开一个连接,也可以同时连接多台远程主机。
3.3 程序用例图
程序用例见图3-1:
图3-1程序用例图
下面对各个用例进行简单描述:“远程连接”是操作菜单下的几个主要功能的概括,包括“连接至”以与“通过控制台连接至”,以与“全部连接”等,图中用例概括成了2个用例功能,分别是“连接已有主机”以与“新建主机”,因为程序中连接功能上大致可以分为连接已有的与新建一个连接来连接,这些连接是针对远程主机。
做完需求分析,我们就可以据此对整个远程计算机管理工具做出整体上的设计,笔者在下一章给出了项目的总体设计的主要容。
第4章总体设计
参照上一节的需求分析,做出这个项目的总体设计,这样,项目就有了一个大致的轮廓,软件的结构等也就更加清晰。
4.1 项目结构概述
项目开发使用的软件工具与开发运行环境:
工具软件:Visual studio2010,
框架版本:framework4.0,
操作系统:windows7,
开发使用32位个人PC,
程序运行要求:Windows2000 server与更高版本的windows操作系统,需要framework4.0支持。
本系统作为一个完整的解决方案,一共包括3个工程:项目主要工程,数据操作工程,远程连接机器模型工程。项目主要工程,是项目的主要部分,包含程序的主窗体等各个用户操作直接使用的窗体界面,还有一些程序所需要的类库等的引用,图片等程序资源以与程序的配置等;数据操作工程,主要包括两个类,数据序列化类和一个数据加密解密用的类,这个工程的类主要用于对程序中一些敏感数据进行加密解密使用;远程连接机器模型工程,这个工程包括一个类,这个类定义了远程连接的模型,包括一个完整的远程连接所需要的各个属性参数与方法等。
总体说就是以下3层结构:
视图层:
视图是模型的表示,它提供用户交互界面。包括:各个操作的窗体界面
控制层:
用控制器提供一个控制和处理请求的集中入口点,负责接收、截取并处理用户请求(典型情况下是一个运行浏览器的用户);决定执行什么商业逻辑功能。
包括:所有实现逻辑的类
模型层:
模型提供了业务实体对象和业务处理对象,并通过业务实体对象实现了对视图和模型之间交互的支持。
包括:主机(包含连接名,主机名或IP地址,登录密码等)。
4.2 程序开发结构类图
主工程的类结构比较清晰,FrameBase类作为所有主工程的窗体类的基类,它定义了在本程序中所有用户界面的一些基本外观属性,主窗体中所有其他的窗体类都直接或者间接的继承自该基类,这样有利保证该程序中所有的窗体风格一致,符合软件设计的界面一致性原则。具体来说,包括下述派生窗体类:newConnectionFrame类,这个是“新建连接”的窗体类;addSettingsFrame类,是“添加设置”类;newRemoteMachineFrame类,新建远程主机连接类;newSettings类,“新建设置”;mainFrame,这个是主窗体类。
主工程中各个类的主要方法设计如下:
1)FrameBase类的主要数据成员与方法见表4-1:
属性或方法名称
描述
public Machine GetRemoteDesktop(string parRemoteDesktopConnectionName)
获取一个远程桌面连接,返回机器模型
Public List<Machine>GetRemoteDesktops( )
返回远程连接列表
public List<Machine> GetAutoConnectRemoteDesktops()
获取自动远程连接的桌面
public bool SaveRemoteDesktop(Machine parMachine, bool openedForEdit)
保存远程连接,并返回bool型变量指示是否保存成功
public void DeleteRemoteDesktop(string parMachineName)
删除远程连接
public DataTable GetRemoteDesktopsDataTable()
获取远程连接表
public void SaveSettings(string password)
保存配置
public void LoadSettings(string password, string fileName)
加载设置到菜单中
表4-1 FrameBase类
2)newConnectionFrame类的主要数据成员与方法见4-2:
属性或方法名称
描述
private Machine _Entity
新建的连接实体
private void chkSaveSettings_CheckedChanged()
获取“保存连接”是否选中的方法
private void btnConnect_Click()
连接按钮的事件
表4-2 newConnectionFrame类
3)addSettingsFrame类的主要数据成员与方法见表4-3:
属性或方法名称
描述
public void LoadGridData()
为设置窗体控件加载数据
private void dgrRemoteDesktops_CellContentClick
“设置”单元格的单击事件,比如删除,修改等功能
private void btnNew_Click()
新建按钮的事件
表4-3 addSettingsFrame类
4)newSettings类的主要数据成员与方法见表4-4:
属性或方法名称
描述
public bool openedForEdit
指示编辑是否打开的属性
public newSettings(Machine parMachine)
根据机器连接新建设置
private void btnSave_Click()
保存事件
表4-4newSettings类
5)mainFrame类的主要数据成员与方法见表4-5:
属性或方法名称
描述
private void LoadConnectToMenuItems()
将连接加载到菜单中
public void LoadRemoteConnection(Machine parEntMachine, bool isConsole)
新建一个标签打开一个建立的远程连接的方法
void tsmiDisconnect_Click()
断开连接的方法
private void LoadConnectViaConsoleRemoteDesktops()
加载通过控制台连接菜单项方法
private void settingsToolStripMenuItem_Click()
设置菜单对应事件
private void disconnectAllToolStripMenuItem_Click()
断开所有连接对应事件
public void DisconnectConnection(string parRemoteSettingName)
断开连接的事件
private void connectAllToolStripMenuItem_Click()
连接所有的事件
private void saveSettingsToAFToolStripMenuItem_Click()
保存连接事件
private void loadSettingsFromFileToolStripMenuItem_Click()
从文件导入设置到程序事件
表4-5 mainFrame类
主工程类结构见图4-1:
图4-1主工程的类结构图
其他工程的结构类图包括数据加密操作工程与远程主机模型工程两个工程,这些类既有窗体界面类,也有一些逻辑应用的类,下面分别说明各个类的基本作用:aboutAuthorFrame类是“关于作者”的窗体类,这个类展示一些关于程序作者与程序版本的基本信息;enterPasswordFrame也是一个窗体类,它是用于在程序中输入密码时调用的窗体;Program是程序启动类,定义了程序启动时的一些重要参数;RemoteDesktopControllerTabPage是一个用户控件类,它定义了主窗体打开的标签的样式功能等;Resources命名空间存储了程序的一些资源文件,比如图片文件;uctRemoteConnectionSettings远程桌面连接的属性类,定义远程连接属性的类。
下面简单列出主要类的属性与方法:
1)enterPasswordFrame类的主要数据成员与方法见表4-6:
属性或方法名称
描述
Private string _password
保存密码的变量
public string Password
保存密码的属性
private void btnOK_Click()
输入密码后确认事件
表4-6 enterPasswordFrame类
2)RemoteDesktopControllerTabPage类的主要数据成员与方法见表4-7:
属性或方法名称
描述
private AxMSTSCLib.AxMsRdpClient4 rdpc
定义了一个远程桌面客户端对象
void rdpc_OnDisconnected()
当连接已经断开时触发
private void SetRdpClientProperties
设置远程连接属性标签页的属性
public void Connect(Machine parMachine)
连接远程主机
protected override void OnPaint(PaintEventArgs pe)
重绘当前标签,使之有关闭按钮
表4-7 RemoteDesktopControllerTabPage类
其他类结构见图4-2:
图4-2程序中其他类结构图
至此,项目总体设计基本完成,但是这并没有给出项目实现的每一个细节,仅有这些,还无法开始项目的编码实现,我们需要知道程序工程结构,程序的类,方法甚至每一个属性等这样更深入的细节,这就是项目的详细设计,这将在下一章中看到。
第5章详细设计
在这一章中,我将给出项目实现的每一个细节,包括每一个窗体,以与每一个窗体上的控件等深入的细节,做好这些,就可以进行我们后续的编码实现等。
5.1 主窗体详细设计
一个下拉菜单,通过不同选项来执行不同的功能,主窗体菜单功能见表5-1:
控件名称
控件类型
控件事件
功能描述
msMain
MenuStrip
菜单栏,功能菜单
optionsToolStripMenuItem
ToolStripMenuItem
“选项”
connectToToolStripMenuItem
ToolStripMenuItem
LoadConnectToMenuItems( )
LoadRemoteConnection( )
连接至选择的远程连接
connectViaConsoleToToolStripMenuItem
ToolStripMenuItem
LoadConnectViaConsoleRemoteDesktops( )
LoadRemoteConnection( )
通过控制台连接到远程计算机
disconnectToolStripMenuItem
ToolStripMenuItem
tsmiDisconnect_Click( )
断开选择的远程连接
connectAllToolStripMenuItem
ToolStripMenuItem
connectAllToolStripMenuItem_Click
( )
一次连接多台一选择的连接
disconnectAllToolStripMenuItem
ToolStripMenuItem
disconnectAllToolStripMenuItem_Click( )
同时断开所有已经建立的连接
imAndExToolStripMenuItem
ToolStripMenuItem
包含“导入”和“导出两个二级菜单”
saveSettingsToAFToolStripMenuItem
ToolStripMenuItem
saveSettingsToAFToolStripMenuItem_Click( )
将程序中的远程连接保存到本地
loadSettingsFromFileToolStripMenuItem
ToolStripMenuItem
loadSettingsFromFileToolStripMenuItem_Click( )
将程序的远程连接文件导入到程序中
settingsToolStripMenuItem
ToolStripMenuItem
settingsToolStripMenuItem_Click
( )
设置程序中保存的远程连接,增删改查等操作。
表5-1 主窗体菜单功能表
除此之外,在主窗体还包括一个TabControl类型的控件tcMain,这个是个空白的标签控件,其中的标签是动态添加的,每个标签就是一个已经建立的远程连接,在本程序中对该TabControl控件进行了一些重载修改,是控件的标签页可以像浏览器一样有个关闭选项,因此用户可以很方便的关闭每一个打开的标签窗口。
5.2 新建远程计算机连接详细设计
“新建远程计算机连接”是程序中选择“新建”远程连接时会调用的功能,该功能包括众多实用的复选框选项,都可以勾选的,该页面的具体功能控件详细介绍见表5-2:
控件名称
控件类型
控件事件
功能描述
uctRemoteConnectionSettings1
uctRemoteConnectionSettings(本程序中自定义的一种用户空间类)
定义了一个远程连接的主要属性,供用户选用。
label1
Label
显示“保存配置”文本
chkSaveSettings
CheckBox
供用户选是否保存当前这个配置
label2
Label
显示“配置名称”文本
txtRemoteDesktopConnectionName
TextBox
供用户输入当前配置的名称
btnConnect
Button
btnConnect_Click()
确定按钮,点击后表示完成新建当前连接。
btnCancel
Button
btnCancel_Click()
取消按钮,点击表示取消新建当前的连接。
5-2“新建远程计算机连接”页功能控件表
这里要特别说明一下uctRemoteConnectionSettings这个类,下面简称为远程连接控件类,这个类是定义在主工程的BasicLib命名空间下的一个类,这个类是一个用户控件类,它继承自UserControl类,这个控件里定义了一个远程连接的实用属性,包括主机名(或IP地址),域名等,远程连接控件类的控件与功能等详细容见表5-3:
控件名称
控件类型
功能描述
label1
Lable
显示文本“主机名(或IP地址)”
txtMachineName
TextBox
供用户输入主机名或IP地址。
label2
Label
显示文本“域名”
txtDomainName
TextBox
供用户输入“域名”
label3
Label
显示文本“用户名”
txtUserName
TextBox
供用户输入“用户名”
label4
Label
显示文本“密码”
txtPassword
TextBox
供用户输入“密码”
label5
Label
显示“自动连接”
chkAutoConnect
CheckBox
供用户勾选,勾选后当前连接就会在程序打开后自动连接该远程计算机
label6
Label
显示文本“共享磁盘驱动器”
chkShareDiskDrives
CheckBox
供用户勾选是否共享磁盘驱动器,勾选后在本机和远程主机之间就可以互相共享磁盘文件
label7
Label
显示文本“共享打印机”
chkSharePrinters
CheckBox
供用户勾选,勾选后在本机和远程主机之间将会共享打印机设备
label8
Label
显示文本“保存密码”
chkSavePassword
CheckBox
供用户勾选,勾选后将会保存当前连接的用户密码
label9
Label
显示文本“色彩质量”
cmbColorDepth
ComboBox
提供以下列表,有多个选项可选,包括:HighColor15,HighColor16,Color256,TrueColor,不同选项决定了建立连接后看到的远程桌面的色彩质量。
表5-3 远程连接控件类
5.3 导出设置详细设计
导出功能在二级菜单里,要使用导出功能,应该按照“选项”,然后“导入导出”到“导出设置”,在点击了“导出设置”选项后,会出现一个“请输入密码”的对话框,这里所要输入的密码用于下次要导入这个远程连接配置文件时所用。密码不能为空,若在输入密码的页面不输入密码,则无法通过,无法继续进行导出操作。用户在导出远程连接配置文件的时候,务必牢记所设置的密码,否则下次将无法导入这个配置文件。在导出功能上,有以下2个窗体类,
“请输入密码”窗体类,这个类包括控件见表5-4:
控件名称
控件类型
控件事件
功能描述
label1
Label
显示文本“密码”
txtPassword
TextBox
供用户输入“密码”,改密码将作为下次导入这个配置文件时的安全验证密码。
btnOK
Button
btnOK_Click()
用户输入密码后,点击确定,就会进入选择保存路径的页面,否则将会提示用户输入密码。
表5-4“请输入密码”窗体类
在上一步中,输入正确的密码并点击确定后将会转到“另存为”页面,在这个另存为窗体,用户只要输入保存的文件名即可,本程序的配置文件将会保存为一个.mgm为后缀名类型的文件,保存后用户以后就可以选择导入这个配置文件。
5.4 导入设置详细设计
按照如下的操作顺序即可,“选项”到“导入导出”到“导入设置”就能打开导入设置功能了,此时程序会有一个安全提示,因为导入设置后程序的配置文件会被导入的配置文件所覆盖,因此会出现“导入配置”窗体,该导入窗体会给出以下提示“导入配置文件,您当前的配置信息将会被清除,是否继续?”,并且用户将会有两个选项,“是”和“否”,若用户选择“是”,将会弹出选择配置文件的窗体,在文件选择窗口也做了过滤限制,只能选择.mgm类型的文件,选择正确的文件后,会提示用户输入密码,只有密码正确才能完成导入设置的过程,才能将选择的配置文件导入到程序中,否则将无法导入。如果用户不想继续导入设置文件,可以选择“否”,这样就可以退出导入设置功能。
5.5 设置功能详细设计
设置功能就是手动管理程序中保存的远程连配置,在这里可以进行增删改查功能,但是并不需要数据库,这些是保存到Properties文件夹下的Settings.settings文件里,在这个文件建立一个用户,就可以在程序里保存这些数据了。打开“设置”功能的步骤是“操作”到“设置”,点击“设置”就可以打开设置功能。
设置会打开一个新的窗体类,即addSettings
展开阅读全文