本篇文章主要介绍了c#实现windows远程桌面连接程序代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成
到自己的winform程序,并实现管理远程主机的配置。
远程桌面核心类库
windows系统自带了远程桌面activex dll,目录:
c:WindowsSystem32mstscax.dll
此类库无法使用c#直接调用,介绍一个工具AxImp.exe
AxImp.exe
msdn.microsoft.com/zh-cn/library/8ccdh774(VS.80).<a href="https://www.codesou.cn/" target="_blank">asp</a>x
ActiveX 控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。
控件转换
在cmd输入以下命令
"c:Program Files (x86)Microsoft SDKsWindowsv7.0ABinAxImp.exe" "c:WindowsSystem32mstscax.dll"
即可生成AxMSTSCLib.dll,MSTSCLib.dll
远程桌面连接核心代码
//远程连接核心方法 private AxMSTSCLib.AxMsRdpClient7 rdpc = null; protected void OnCreateControl() { rdpc = new AxMSTSCLib.AxMsRdpClient7(); rdpc.OnDisconnected += new AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEventHandler(rdpc_OnDisconnected); this.Controls.Add(rdpc); rdpc.Dock = DockStyle.Fill; rdpc.BringToFront(); } void rdpc_OnDisconnected(object sender, AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEvent e) { //处理断开连接 } public void Disconnect() { try { if (rdpc.Connected == 1) { rdpc.Disconnect(); } } catch (Exception) { } } private void SetRdpClientProperties(Machine parMachine) { rdpc.Server = parMachine.MachineName; rdpc.AdvancedSettings2.RDPPort = parMachine.Port; rdpc.UserName = parMachine.UserName; rdpc.Domain = parMachine.DomainName; if (parMachine.Password != "") { rdpc.AdvancedSettings5.ClearTextPassword = parMachine.Password; } rdpc.AdvancedSettings5.RedirectDrives = parMachine.ShareDiskDrives; rdpc.AdvancedSettings5.RedirectPrinters = parMachine.SharePrinters; rdpc.ColorDepth = (int)parMachine.ColorDepth; } public void Connect(Machine parMachine) { SetRdpClientProperties(parMachine); rdpc.Connect(); } //远程主机配置 [Serializable()] public class Machine { private string _RemoteDesktopConnectionName; public string RemoteDesktopConnectionName { get { return _RemoteDesktopConnectionName; } set { _RemoteDesktopConnectionName = value; } } private string _MachineName; public string MachineName { get { return _MachineName; } set { _MachineName = value; } } private string _DomainName; public string DomainName { get { return _DomainName; } set { _DomainName = value; } } private string _UserName; public string UserName { get { return _UserName; } set { _UserName = value; } } private string _Password; public string Password { get { return _Password; } set { _Password = value; } } private bool _AutoConnect; public bool AutoConnect { get { return _AutoConnect; } set { _AutoConnect = value; } } private bool _ShareDiskDrives; public bool ShareDiskDrives { get { return _ShareDiskDrives; } set { _ShareDiskDrives = value; } } private bool _SharePrinters; public bool SharePrinters { get { return _SharePrinters; } set { _SharePrinters = value; } } private bool _SavePassword; public bool SavePassword { get { return _SavePassword; } set { _SavePassword = value; } } private Colors _ColorDepth; public Colors ColorDepth { get { return _ColorDepth; } set { _ColorDepth = value; } } public int Port { get { return _Port; } set { _Port = value; } } private int _Port; public enum Colors { HighColor15 = 15, HighColor16 = 16, Color256 = 8, TrueColor = 24 } }
【相关推荐】
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » 分享利用c#实现windows远程桌面连接实例教程
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » 分享利用c#实现windows远程桌面连接实例教程