好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

c#实现windows远程桌面连接程序代码

使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成

到自己的winform程序,并实现管理远程主机的配置。

远程桌面核心类库

windows系统自带了远程桌面activex dll,目录:

c:\Windows\System32\mstscax.dll

此类库无法使用c#直接调用,介绍一个工具AxImp.exe

AxImp.exe

https://msdn.microsoft.com/zh-cn/library/8ccdh774(VS.80).aspx

ActiveX 控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。

控件转换

在cmd输入以下命令

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\AxImp.exe" "c:\Windows\System32\mstscax.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

   }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/theLife/p/6838745.html

dy("nrwz");

查看更多关于c#实现windows远程桌面连接程序代码的详细内容...

  阅读:55次