最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 分享利用c#实现windows远程桌面连接实例教程

    本篇文章主要介绍了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
      }
    }

    【相关推荐】

    1. 请问windows下用Navicat能连,用PHP无法连接远程mysql的有关问题!

    2. Windows系统下安装Ulipad编辑器

    3. 使用Python开发windows桌面程序

    4. 浅谈Windows下 PHP4.0与oracle 8的连接设置_PHP教程

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 分享利用c#实现windows远程桌面连接实例教程
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情