使用winform制作windows遠(yuǎn)程桌面連接程序,windows自帶了遠(yuǎn)程桌面連接,我們需要將遠(yuǎn)程桌面連接集成
到自己的winform程序,并實(shí)現(xiàn)管理遠(yuǎn)程主機(jī)的配置。
遠(yuǎn)程桌面核心類庫(kù)
windows系統(tǒng)自帶了遠(yuǎn)程桌面activex dll,目錄:
c:/Windows/System32/mstscax.dll
此類庫(kù)無(wú)法使用c#直接調(diào)用,介紹一個(gè)工具AxImp.exe
AxImp.exe
https://msdn.microsoft.com/zh-cn/library/8ccdh774(VS.80).aspx
ActiveX 控件導(dǎo)入程序?qū)?ActiveX 控件的 COM 類型庫(kù)中的類型定義轉(zhuǎn)換為 Windows 窗體控件。
控件轉(zhuǎn)換
在cmd輸入以下命令
"c:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin/AxImp.exe" "c:/Windows/System32/mstscax.dll"
即可生成AxMSTSCLib.dll,MSTSCLib.dll
遠(yuǎn)程桌面連接核心代碼
//遠(yuǎn)程連接核心方法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){  //處理斷開(kāi)連接}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();}//遠(yuǎn)程主機(jī)配置[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  }}以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選