远程序桌面登录的.NET(C#)开发

远程序桌面登录的.NET开发,可以使用MSTSCLib.dll和MsTscAxWrapper.dll两个转换过的动态库,而无需使用WINDOWS自带的OCX,因为使用OCX开发可以会遇到其它问题。

     主要代码:

 

代码

public AxMSTSCLib.AxMsRdpClient rdpClient;   
  
rdpClient = new AxMSTSCLib.AxMsRdpClient();   
            rdpClient.Dock = DockStyle.Fill;   
  
            rdpClient.Width = Screen.PrimaryScreen.Bounds.Width;//控件宽度   
            rdpClient.Height = Screen.PrimaryScreen.Bounds.Height;//控件宽度   
            this.Controls.Add(rdpClient);   
            rdpClient.Server = this.StrIP;//服务器地址   
            rdpClient.UserName = this.StrName;   
            rdpClient.AdvancedSettings2.RDPPort = 3389;   
            rdpClient.AdvancedSettings2.ClearTextPassword = this.StrPwd;//密码   
            rdpClient.ColorDepth = 16;//颜色位数   
            rdpClient.FullScreen = true;//是否全屏   
  
 rdpClient.Connect();  

 

 

了解远程桌面协议 (RDP)
< type="text/javascript">

远程桌面协议 (RDP),用于终端服务器和终端服务器客户端之间的通信。RDP 被封装并在 TCP 加密。

远程桌面协议基于,并是对扩展 T 120 系列的协议标准。 多声道支持协议用于单独的虚拟通道储存的演示文稿数据、 串行设备通信,授权信息、 高加密的数据 (键盘、 鼠标活动) 等。 因为 RDP 是核心 T.share 协议的扩展,多个其他功能将保留作为 RDP,如体系结构支持多点 (多方会话) 所需要的功能的一部分。 multipoint 数据传递允许从应用程序在"实时多方传递而不必向单独 (例如,虚拟 Whiteboards) 的每个会话发送相同的数据的数据。

Windows 终端服务器此第一个版本中但是,我们将集中提供可靠而快速点对点单会话通信。 只有一个数据信道将可以中使用最初发布的终端服务器 4.0 但是,RDP 的灵活性未来的产品中提供大量的功能的空间。

Microsoft 决定实现 RDP 连接用于 Windows NT 终端服务器中的一个原因是它提供用于生成许多更多的功能非常可扩展基础。 这是因为 RDP 用于数据传输 64,000 独立的通道。 但是,当前传输活动只使用单个频道 (对于键盘、 鼠标和演示文稿数据)。

而且,RDP 旨在支持多种不同类型的网络拓扑 (例如 ISDN、 POTS 和多个的 LAN 协议 (如 IPX、 NetBIOS、 TCP/IP,等)。 当前版本的 RDP 将只运行 TCP/IP 上,但客户反馈的其他协议支持可以添加在将来版本。

参与发送和接收数据通过 RDP 堆栈活动实质上是作为七层 OSI 模型标准公共 LAN 网络现在相同的。 数据从应用程序或服务传输经过下协议堆栈 sectioned、 定向到一个通道 (通过 MCS)、 加密、 换行,帧、 打包到在的网络协议和最后解决,会上传送缆线到客户端。 返回的数据相同方式仅中有效反向,使用数据包被去除的它的地址,然后 unwrapped 解密,依此类推直到数据提供给应用程序使用。 协议堆栈修改关键部分发生第四个和第七个层,其中数据的加密、 换行和帧、 定向到一个通道和确定优先级别之间。

为应用程序开发人员的要点之一是,使用 RDP,Microsoft 有抽象立即处理该协议栈的复杂性。 这样,他们只需编写干净的、 精心设计、 良好 32 位应用程序并且 RDP 堆栈由终端服务器和它的客户端连接实现负责其余工作。

有关应用程序在终端服务器上的交互方式以及要注意开发用于 Windows 终端服务器基础结构的应用程序时的详细信息,查看"优化 Windows NT Server 4.0,终端服务器版的应用程序"白皮书。 值得讨论 RDP 堆栈实例中的四个组件是 multipoint 的通信服务 (MCSMUX)、 泛型的会议控制 (GCC)、 Wdtshare.sys 和 Tdtcp.sys。 MCSmux 和 GCC 都在国际电信联合 (ITU) T 120 系列。 MCS 由两种标准组成: 它定义了多点服务的 T.122 和指定数据传输协议的 T.125。 MCSMux 控制通道 (由到协议中的预定义虚拟通道的 multiplexing 数据) 的工作分配、 优先级和分段发送的数据。 实质上,提取多个的 RDP 堆栈到单个实体从该 GCC 的角度。 GCC 负责管理这些多个频道。 在 GCC 允许创建和删除会话连接和控件资源提供 MCS。 每个终端服务器协议 (当前,唯一的 RDP 和 Citrix 的 ICA 支持) 将有一个协议堆栈实例加载 (等待连接请求一个侦听程序堆栈)。 终端服务器设备驱动程序协调和管理 RDP 协议活动和为较小组件组成,UI 传输、 压缩、 加密、 帧和等等的 RDP 驱动程序 (Wdtshare.sys),和传输驱动程序 (Tdtcp.sys) 将打包到基础协议网络 TCP/IP 协议。

RDP 是完全独立的基础的传输堆栈,此案例的 TCP/IP 中的开发的。 在完全独立的传输堆栈的 RDP,表示为它们的客户需要增加了很少或没有重要更改协议的基本部分我们可以添加其他网络协议的其他传输驱动程序。 这些是 RDP 的性能和网络上的 extendibility 的关键元素。

 

 

时间: 2024-10-21 20:22:01

远程序桌面登录的.NET(C#)开发的相关文章

mstsc 远程序桌面登录的 c#开发

远程序桌面登录的.NET开发,可以使用MSTSCLib.dll和MsTscAxWrapper.dll两个转换过的动态库,而无需使用WINDOWS自带的OCX,因为使用OCX开发可以会遇到其它问题. 主要代码: public AxMSTSCLib.AxMsRdpClient rdpClient; rdpClient = new AxMSTSCLib.AxMsRdpClient(); rdpClient.Dock = DockStyle.Fill; rdpClient.Width = Screen.

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——1.3 移动应用程序 ≠ 桌面应用程序

1.3 移动应用程序 ≠ 桌面应用程序 我们仍然要保持简单. 从日常生活的角度去考虑移动内容的需求,会使你专注于设计工作的合适情景,人们搜寻信息的方式和何时需要信息.下一步,我们需要把重点放在人们如何实际使用移动设备. 关于应用程序开发的许多书籍和演讲集中着重介绍使用特定的功能特征(比如学习如何使该设备震动!).对,可以肯定的是,对于一个大型软件团队来说,要从事一个复杂的应用程序,专注于特定的技术特点和行为可能是有意义的.但本书是从"以人为本"角度来阐述,它以人和他们的内容为第一. 当

快捷方式-安卓开发——如何实现应用程序桌面图标的动态变化

问题描述 安卓开发--如何实现应用程序桌面图标的动态变化 公司开发了一款安卓APP,但是许多客户会根据自己的需要,想把应用程序桌面快捷方式的图片,名称,以及进入应用后显示的壁纸.LOGO等改为自己公司的. 基于上述需求,希望可以不用通过修改后重新编译给APK的方式,在客户手机上已安装我们公司APP的前提下,动态修改快捷方式的图片,名字等. 程序中的壁纸,LOGO可以通过服务端下发,动态修改,但是已经安装在手机上的应用,要如何去修改他的快捷方式的图片和名字呢? 目前网上收到的资料是:1.隐藏应用程

Win8远程桌面登录历史痕迹的清除方法

  随着互联网的发展,在工作中,本地电脑或许无法满足我们单一的需求,比如我们拥有一个web服务器,或者运行某些程序在系统中受限制,那么这个时候需要借助远程连接来进入另外一台电脑中操作,但问题来了,在使用远程的桌面时候,就会留下很多的远程登陆历史.这个软件虽然很方便使用,但是通过远程桌面是需要经过帐户登陆的,这样对帐户是非常的不安全的.那么就来看一看怎样清除这些被远程登录的历史痕迹,来保护帐户安全呢? 清除Win8远程桌面登录历史痕迹的方法: 1.按"Windows+R"输入"

如何在程序中登录局域网中的服务器(知道用户名与密码)。

问题描述 如何在程序中登录局域网中的服务器(知道用户名与密码). 解决方案 解决方案二:你登陆到服务器准备做什么操作呢?解决方案三:??解决方案四:System.Management命名空间解决方案五:是要远程桌面吗?解决方案六:集成Windows身份验证?解决方案七:我需要从局域网服务器上复制文件,集成Windows身份验证.解决方案八:System.Diagnostics.Process.Start("net.exe","use\\dr\ipc$"1234&qu

Java程序员的日常——SpringMVC+Mybatis开发流程、推荐系统

今天大部分时间都在写业务代码,然后算是从无到有的配置了下spring与mybatis的集成. SpringMVC+Mybatis Web开发流程 配置数据源 在applicationContext.xml中引入数据源的配置: <context:component-scan base-package="com.test" ></context:component-scan> <context:property-placeholder location=&qu

怎么清除Win8远程桌面登录历史痕迹

  1.按"Windows+R"输入"Regedit.exe"回车(如果出现UAC提示,请点击是),依次打开HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault. 删除目前已经无法使用的历史记录或者删除全部(MRU+数字,数据为远程连接的计算机名称)键值实现. 2.依次打开库文档,点击查看---选项打开文件夹选项,切换到查看,勾选"显示隐藏的文件.文件夹和驱动器". 3.查

清除Win8远程桌面登录历史痕迹

  1.按"Windows+R"输入"Regedit.exe"回车(如果出现UAC提示,请点击是),依次打开HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault. 删除目前已经无法使用的历史记录或者删除全部(MRU+数字,数据为远程连接的计算机名称)键值实现. 2.依次打开库文档,点击查看---选项打开文件夹选项,切换到查看,勾选"显示隐藏的文件.文件夹和驱动器". 3.查

清除Win8远程桌面登录历史痕迹的方法

  有时候是因为工作的需要,或是教学上的需要,用户都会用到远程桌面,这的确是一个非常便捷的功能,但是对于经常使用远程桌面的用户来说,帐户安全是一个非常重要的关键,一般情况下都会选择清除远程登录历史痕迹来保护帐户安全,那么在新系统win8下,用户该如何来完成这个清除工作呢? 清除Win8远程桌面登录历史痕迹的方法: 1.按"Windows+R"输入"Regedit.exe"回车(如果出现UAC提示,请点击是),依次打开HKEY_CURRENT_USERSoftware