c#實現(xiàn)windows遠(yuǎn)程桌面連接程序代碼
使用winform制作windows遠(yuǎn)程桌面連接程序,windows自帶了遠(yuǎn)程桌面連接,我們需要將遠(yuǎn)程桌面連接集成
到自己的winform程序,并實現(xiàn)管理遠(yuǎn)程主機(jī)的配置。
遠(yuǎn)程桌面核心類庫
windows系統(tǒng)自帶了遠(yuǎn)程桌面activex dll,目錄:
c:\Windows\System32\mstscax.dll
此類庫無法使用c#直接調(diào)用,介紹一個工具AxImp.exe
AxImp.exe
https://msdn.microsoft.com/zh-cn/library/8ccdh774(VS.80).aspx
ActiveX 控件導(dǎo)入程序?qū)?ActiveX 控件的 COM 類型庫中的類型定義轉(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) { //處理斷開連接 } 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 } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
那些年,我還在學(xué)習(xí)C# 學(xué)習(xí)筆記
那些年學(xué)了ASP.NET后,才開始學(xué)習(xí)C#,說來也怪,怎么學(xué)了ASP.NET才來學(xué)習(xí)C#,其實沒有什么的2012-03-03C# 實現(xiàn)ADSL自動斷網(wǎng)和撥號的方法(適用于撥號用戶)
下面小編就為大家?guī)硪黄狢# 實現(xiàn)ADSL自動斷網(wǎng)和撥號的方法(適用于撥號用戶)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12C#實現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字
這篇文章主要為大家詳細(xì)介紹了如何使用C#實現(xiàn)貨幣金額數(shù)字轉(zhuǎn)大寫漢字功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01