Home  >  Article  >  Operation and Maintenance  >  Share an example tutorial on using C# to implement Windows remote desktop connection

Share an example tutorial on using C# to implement Windows remote desktop connection

零下一度
零下一度Original
2017-05-24 15:13:015097browse

This article mainly introduces c# to implement the windows remote desktop connection program code. The editor thinks it is quite good, so I will share it with you now and give it as a reference. Let’s follow the editor and take a look.

Use winform to make a windows remote desktop connection program. Windows comes with a remote desktop connection. We need to integrate the remote desktop connection

into our own winform program, and realizes the configuration management of remote host.

Remote desktop core class library

The windows system comes with remote desktop activex dll, directory:

c:\Windows\System32 \mstscax.dll

This kind of library cannot be called directly using c#. We introduce a tool AxImp.exe

AxImp.exe

msdn .microsoft.com/zh-cn/library/8ccdh774(VS.80).<a href="http://www.php.cn/wiki/1519.html" target="_blank">asp</a>x

ActiveX ControlThe import program will ActiveX control Type definitions in the COM type library are converted to Windows Forms controls.

Control conversion

Enter the following command in cmd

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\AxImp.exe" "c:\Windows\System32\mstscax.dll"

to generate AxMSTSCLib.dll, MSTSCLib.dll

Remote Desktop Connection Core Code

//远程连接核心方法
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
  }
}

[Related Recommendations]

1. Can I use Navicat to connect under Windows, but cannot connect remotely using PHP? Mysql related issues!

2. Install Ulipad editor under Windows system

3. Use Python to develop windows desktop programs

4. A brief discussion on the connection settings between PHP4.0 and oracle 8 under Windows_PHP tutorial

The above is the detailed content of Share an example tutorial on using C# to implement Windows remote desktop connection. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn