Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Teilen Sie ein Beispiel-Tutorial zur Verwendung von C# zur Implementierung einer Windows-Remotedesktopverbindung

Teilen Sie ein Beispiel-Tutorial zur Verwendung von C# zur Implementierung einer Windows-Remotedesktopverbindung

零下一度
零下一度Original
2017-05-24 15:13:015243Durchsuche

In diesem Artikel wird hauptsächlich c# zur Implementierung des Programmcodes für die Windows-Remotedesktopverbindung vorgestellt. Der Herausgeber hält ihn für recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick auf

Verwenden Sie Winform, um ein Windows-Remotedesktopverbindungsprogramm zu erstellen. Wir müssen die Remotedesktopverbindung integrieren.

in unser eigenes Winform-Programm und realisiert die Konfigurationsverwaltung des Remote-Hosts.

Remotedesktop-Kernklassenbibliothek

Windows-System wird mit Remotedesktop-ActiveX-DLL geliefert, Verzeichnis:

c:WindowsSystem32mstscax.dll

Diese Art von Bibliothek kann nicht direkt mit c# aufgerufen werden. Wir stellen ein Tool AxImp.exe vor

AxImp.exe

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

Der ActiveX-Control-Importer konvertiert die Typdefinitionen in der COM-Typbibliothek des ActiveX-Steuerelements in Windows Forms-Steuerelemente.

Konvertierung steuern

Geben Sie den folgenden Befehl in cmd ein

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

, um AxMSTSCLib.dll, MSTSCLib.dll zu generieren

Remotedesktopverbindungs-Kerncode

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

[Verwandte Empfehlungen]

1. Kann ich Navicat verwenden, um eine Verbindung unter Windows herzustellen? PHP kann keine Verbindung zu Remote-MySQL-bezogenen Problemen herstellen!

2.

Installieren Sie den Ulipad-Editor unter dem Windows-System

3.

Verwenden Sie Python, um Windows-Desktopprogramme zu entwickeln

4.

Eine kurze Diskussion über die Verbindungseinstellungen zwischen PHP4.0 und Oracle 8 unter Windows_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel-Tutorial zur Verwendung von C# zur Implementierung einer Windows-Remotedesktopverbindung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn